thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 (edytowane) Witam mam taki problem: Robię formularz w PHP i chciałbym, żeby jak ktoś nie wybierze żadenj opcji (pola typu "radio") wyświetłał się komunikat, że nic nie zaznaczył. Niestety potrafię zrobić to tylko tak: <input type="radio" name="opcja" value="a" /><input type="radio" name="opcja" value="b" /> a potem w pliku obsługującym formularz if ($opcja = 'a') {$message = '<p>wybrałeś A</p>';} elseif ($opcja = 'b') {$message = '<p>wybrałeś B</p>';}else ( $opcja = NULL;echo '<p>Nic nie wybrałeś</p>'} W tym przypadku pisze co wybrałem albo że niczego nie wybrałem, a mi chodzi o to, żeby pisał TYLKO jak nic nie zostanie wybrane. To jest tylko przykład w rzeczywistości mam tego znacznie więcej, więc mam nadziję, że można to zrobić praktyczniej. Edytowane 21 Sierpnia 2006 przez thunder_pl Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Hipoll Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 (edytowane) if ($opcja = 'a') {$message = '<p>wybrałeś A</p>';} elseif ($opcja = 'b') {$message = '<p>wybrałeś B</p>';}elseif ($opcja = ""){....} Edytowane 21 Sierpnia 2006 przez Hipoll Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 if ($opcja = 'a') {$message = '<p>wybrałeś A</p>';} elseif ($opcja = 'b') {$message = '<p>wybrałeś B</p>';}elseif ($opcja = ""){....} nie rozumiem........ Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
sasajas Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 if ( $opcja = NULL;echo '<p>Nic nie wybrałeś</p>'} nie wystarczy tylko tak to powinno wyswietlic ze nic nie wybrales Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
samm-ur Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 To jest tylko przykład w rzeczywistości mam tego znacznie więcej, więc mam nadziję, że można to zrobić praktyczniej.Użyj instrukcji switch Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 if ( $opcja = NULL;echo '<p>Nic nie wybrałeś</p>'} nie wystarczy tylko tak to powinno wyswietlic ze nic nie wybrales to nie działa Użyj instrukcji switch zainteresowało mnie to switch. Jednak chyba nie do końca to rozumiem. Mam 9 opcji. Atrybut "value" jest dla nich po koleji od 1 do 9. w pliku obsługującym formularz napisałem tak (najprawdopodobniej źle) switch ($Forma) { case 1: case 2: case 3: case 4: case 5: case 6: case 8: case 9: default: print "Nie wybrałeś rodzaju działalności"; } Czy coś zaznacze, czy nie, zawsze i tak mi wyskakuje "Nie wybrałeś rodzaju działalności" Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
SGJ Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 No bo jest zle. Po kazdej opcji ma byc "break;" Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 switch ($Forma) { case 1: break; case 2: break; case 3: break; case 4: break; case 5: break; case 6: break; case 8: break; case 9: break; default: print "Nie wybrałeś rodzaju działalności"; } to samo. czy cos dam, czy nie zawsze wyskakuje "Nie wybrałeś rodzaju działalności" Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Yacho Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 (edytowane) if ( $opcja = NULL;echo '<p>Nic nie wybrałeś</p>'} nie wystarczy tylko tak to powinno wyswietlic ze nic nie wybrales o operatorach porownania i przypisania słyszał ? :P jesli masz radiobutton z nadanym name opcja to : if(empty($_POST['opcja'])){// tu piszesz co ma byc wykonane jesli ZADNA z opcji radio nie została wykonana} jesli chcesz przelaczac po kolei pomiedzy opcjami switch ($_POST['opcja']) { case 1: // tu cos robimy break; case 2: // tu cos robimy break; default: echo 'Nie wybrałeś rodzaju działalności'; } Najwazniejsze jest to ze kazda wartosc w formularzu przesyłanym metoda POST jest elementem tablicy $_POST kluczem do tej wartosci w tablicy jest atrybut name - jesli masz kilka wartosci o takich samych name to elementem $_POST['twoje_name'] beda kolejne walue - ale zostana do tej tablicy wpisane tylko jesli pole jest zaznaczone ! Edytowane 21 Sierpnia 2006 przez Yacho Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 (edytowane) Yacho dzięki, ale jestem chyba oporny i dalej coś źle robię. Więc tak: mam 9 opcji typu radio, każda ma name="Forma", a value są od 1 do 9 w pliczku obslugujacym formularz wpisałem: if(empty($_POST['Forma'])){post '<p>Nie wybrales zadnej formy!</p>'} nie działa Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING Edytowane 21 Sierpnia 2006 przez thunder_pl Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Yacho Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 (edytowane) Przepraszam bardzo. wszyscy sie chyba ciut zagalopowaliśmy i podyktowalismy Ci zły przykład.... $_POST['forma'] jest tablica - ta tablica zawiera 0-9 elementow ponumerowanych od 0 do 8 (maks 9 elementow numerowanych od 0) Przykład - zaznaczyles 3 pola majace wpisane jako value 4 7 8 dostajesz cos takiego : $_POST['forma'][0] => 4 $_POST['forma'][1] => 7 $_POST['forma'][2] => 8 jak widzisz drugi indeks tej tablicy zawsze zaczyna sie od zera.... wiec jesli chcesz sprawdzic czy dany przycisk został nacisniety - musisz sprawdzic czy w tablicy występuje wartosc 4 7 czy 8 - służy do tego funkcja in_array() teraz przykład kodu : if(in_array(1, $_POST['Forma'])){// rob cos jesli wybrano 1;}elseif (in_array(2, $_POST['Forma'])){// tu robimny cos jesli wybrano 2} ten blkok sprawdzi nam czy odpowiednie wartości istnieja w tablicy i wykona odpowiednie intrukcje.... oczywiscie sprawdzanie tych warunków nie ma zupełnego sensu jesli tablica jest pusta... dlatego mozemy lepiej zapisać : if(empty($_POST['Forma'])){//tu robimy cos jesli nie wybrano zadnej opcji !}else{ if(in_array(1, $_POST['Forma'])) { // rob cos jesli wybrano 1; } elseif (in_array(2, $_POST['Forma'])) { // tu robimny cos jesli wybrano 2 }} Mam nadzieje ze wyrazilem sie dostatecznie jasno bys oprocz przepisywania na pałę cos skumał :) Edytowane 21 Sierpnia 2006 przez Yacho Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 (edytowane) ok, tylko mi chodziło, że jak jest coś zaznaczone to żeby się NIC nie robiło, nie wiem jak TO zrobić ;) Edytowane 21 Sierpnia 2006 przez thunder_pl Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Yacho Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 (edytowane) Znaczy co rozumiesz przez nic nie robiło ? jesli ktos nie wybierze nic to przycisk wyslij ma byc nieaktywny ? czy jak ? Masz kod zaczynajacy sie od pierwszego ifa - tam jest ta ewentualnosc kiedy tablica jest pusta - wpisujesz tam to co ma byc wyswietlone gdy nie beda wybrane zadne opcje Edytowane 21 Sierpnia 2006 przez Yacho Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 ! hehe, chyba W OGÓLE się nie zrozumieliśmy. Chodzi mi o to, żeby te opcje, były jakby konieczne do wysłania formularza. Jeżeli ktoś nie wybierze żadnej z tych opcji to ma się wyświetlać komunikat "Nie wybrałes....", a jeżeli coś wybrał to tylko "Wszystko OK, formularz wysłany) <- to wiem jak zrobić Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Yacho Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 (edytowane) zrozum ze form wysyla sie zawsze - a ty w zaleznosci od tego jakie sa dane wyswietlasz komunikat ze albojest ok albo nie ... kod : if(empty($_POST['Forma'])){// jesli trafilismy tu to oznacza ze nie wybrano zadnego checkboxa Forma - nalezy wyswietlic komunikat ze jest ble i poprosic o wypelnienie !}else{// tu jestesmy jesli user zaznaczyl conajmniej 1 checkbox z grupy forma - i teraz mozemy z nimi robic co chcemy if(in_array(1, $_POST['Forma'])) { // rob cos jesli wybrano 1; } elseif (in_array(2, $_POST['Forma'])) { // tu robimny cos jesli wybrano 2 }} Edytowane 21 Sierpnia 2006 przez Yacho Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 sprecyzowałem..... Proste: 1. pytanie w formularzy 2. pytanie w formularzu 3. tu np. można wybrać za pomocą przycisków "radio" np. 9 opcji. Chodzi mi o to, że jak ktoś nie wybierze żadenj opcji w pkt 3, to sie potem na nastepnej stronie wyswietli "nie wypełniłes pkt 3", a jeżeli wypełnił to nic sie nie ma dziać, formularz zostanie wysłany Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Yacho Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 sprecyzowałem..... Proste: 1. pytanie w formularzy 2. pytanie w formularzu 3. tu np. można wybrać za pomocą przycisków "radio" np. 9 opcji. Chodzi mi o to, że jak ktoś nie wybierze żadenj opcji w pkt 3, to sie potem na nastepnej stronie wyswietli "nie wypełniłes pkt 3", a jeżeli wypełnił to nic sie nie ma dziać, formularz zostanie wysłany i tren kod dokladnie tak zrobi - popatrz na komentarze Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 // tu jestesmy jesli user zaznaczyl conajmniej 1 checkbox z grupy forma - i teraz mozemy z nimi robic co chcemy a jeżeli nic nie chcemy? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Yacho Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 ale formularz wysyla sie po cos.. co chcesz z nim zrobic dalej ? gdzie wyslac te dane ? na maila czy jak ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 (edytowane) formularz idzie na mejla. To wiem jak zrobić Jak mam zwykle pola tekstowe to potrafie to zrobić. Czyli jak ktos nic nie wpisze to sie sie wyswietla "nie wpisales...." a jak wpisze to idzie na mejla wtedy robie to tak: if (strlen ($Comments) > 0) { $Comments = stripslashes($Comments); } else { $Comments = NULL;echo '<p> Nie wpisałeś wiadomości</p>';} Edytowane 21 Sierpnia 2006 przez thunder_pl Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Yacho Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 kielbasisz ten skrypt.... rob tak walidacje : if(empty($_POST['Forma'])){die ('nie wybrałes zadnej opcji forma');}if(empty($comments)){die('comments jest puste');}// tu juz sobie normalnie wysylasz dane na maila robisz tak ze najpierw sprawdzasz warunki co do zgodnosci pol - jesli pole jest puste lub nieprawidłowe wywołujesz die('$opis_bledu') ktore powoduje zatrzymanie skryptu - wiec jesli ktorekolwiek z pol bedzie zle skrypt sie nie wykona - a dopiero za tymi ifami wysyłasz sobie dane na maila.... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 if(empty($_POST['Forma'])){die ('nie wybrałes zadnej opcji forma');} przy tym, jak nic nie dam - faktycznie, jest napisane "nie wybrales....", ale jak coś zaznacze to jest dokładnie to samo ;) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Yacho Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 (edytowane) if(empty($_POST['Forma'])){die ('nie wybrałes zadnej opcji forma');} przy tym, jak nic nie dam - faktycznie, jest napisane "nie wybrales....", ale jak coś zaznacze to jest dokładnie to samo ;) Postaraj sie aby w zadnym value w html - nie było zera ani wartosci "" czy przesyłasz dane z forma metoda post ? Edytowane 21 Sierpnia 2006 przez Yacho Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
thunder_pl Opublikowano 21 Sierpnia 2006 Zgłoś Opublikowano 21 Sierpnia 2006 tak metodą post <label><input type="radio" name="Forma" value="1"> Jednoosobowa działalność gospodarcza</label> <br> <label> <input type="radio" name="Forma" value="2"> Spółka jawna</label> <br> <label> <input type="radio" name="Forma" value="3"> Spółka cywilna</label> <br> <label> <input type="radio" name="Forma" value="4"> Spółka partnerska</label> <br> <label> <input type="radio" name="Forma" value="5"> Spółka z o.o.</label> <br> <label> <input type="radio" name="Forma" value="6"> Spółka akcyjna</label> <br> <label> <input type="radio" name="Forma" value="7"> Spółka komandytowo-akcyjna</label> <br> <label> <input type="radio" name="Forma" value="8"> Spółka komandytowa</label> <br> <label> <input type="radio" name="Forma" value="9"> Inna forma</label> Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Yacho Opublikowano 22 Sierpnia 2006 Zgłoś Opublikowano 22 Sierpnia 2006 (edytowane) Szczerze to nie mam pojecia ;) powinno dzialac - jaka wersja PHP ? EDIT: zamiast name="Forma" daj name="Forma[]" Edytowane 22 Sierpnia 2006 przez Yacho Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...