![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam ankiete i chciałbym zeby ankietowani wypełniali wszystkie konieczne pola ale w moejj ankiecie są dwa rodzaje pytań i odpowiedzi
- TAK/NIE (zaznaczyc mozna tylko jedna odpowiedz) - i kilka odpowiedzi do wyboru (mozna zaznaczyc wiecej niż jedna ale trzeba coś zaznaczyć) Jaki skrypt proponujecie ? Ponizej podaje plik ankieta.php i zliczanie.php [xml:1:b93c801e6e] 1</font><font size="3">. Czy Pan/i dokonuje zakupów w sklepach internetowych ?</font></strong><br> <input type=radio name=odp1 value=tak> Tak <br> <input type=radio name=odp1 value=nie> Nie <br> <strong><font size="3">2. Jezeli nie to z jakich powodow ?</font></strong><br> <input type=checkbox name=odp2a value=internet> Brak dostepu do internetu <br> <input type=checkbox name=odp2b value=zaufanie> Brak zaufania do internetowego handlu <br> <input type=checkbox name=odp2c value=dostep> Brak bezposredniego dostepu do towaru <br> <input type=checkbox name=odp2d value=platnosci> Brak zaufania do sposobow platnosci<br> <input type=checkbox name=odp2e value=obawa> Obawa przed ujawnieniem danych osobowych<br> <input type=checkbox name=odp2f value=doswiadczenie> Brak doswiadczenia <br> <input type=checkbox name=odp2g value=towary> Brak interesujących towarow <br> <input type=checkbox name=odp2h value=stracilem> Straciłem/am zaufanie do tej formy sprzedaży<br> Inne jakie ? <input name=innaodp type=text size=50> [/xml:1:b93c801e6e]zliczanie.php [php:1:b93c801e6e]<?php $file="dane1.txt"; // tu wpisz nazwe pliku txt w którym maj1 bya przechowywane dane. switch($odp1) { case tak: $plik=file($file); $linija=explode("||", $plik[0]); $linija[0]++; $all="$linija[0]||$linija[1]||$linija[2]||$linija[3]||$linija[4]"; $pl=fopen("$file", "r+"); fwrite($pl, $all); fclose($pl); break; case nie: $plik=file($file); $linija=explode("||", $plik[0]); $linija[1]++; $all="$linija[0]||$linija[1]||$linija[2]||$linija[3]||$linija[4]"; $pl=fopen("$file", "r+"); fwrite($pl, $all); fclose($pl); break; } ?> <? $file="dane2.txt"; // tu wpisz nazwe pliku txt w którym maj1 bya przechowywane dane. switch($odp2a) { case internet: $plik=file($file); $linija=explode("||", $plik[0]); $linija[0]++; $all="$linija[0]||$linija[1]||$linija[2]||$linija[3]||$linija[4]||$linija[5]||$linija[ ]||$linija[7]"; $pl=fopen("$file", "r+"); fwrite($pl, $all); fclose($pl); break; } ?> <? $file="dane2.txt"; // tu wpisz nazwe pliku txt w którym maj1 bya przechowywane dane. switch($odp2b) { case zaufanie: $plik=file($file); $linija=explode("||", $plik[0]); $linija[1]++; $all="$linija[0]||$linija[1]||$linija[2]||$linija[3]||$linija[4]||$linija[5]||$linija[ ]||$linija[7]"; $pl=fopen("$file", "r+"); fwrite($pl, $all); fclose($pl); break; } ?> <? $file="dane2.txt"; // tu wpisz nazwe pliku txt w którym maj1 bya przechowywane dane. switch($odp2c) { case dostep: $plik=file($file); $linija=explode("||", $plik[0]); $linija[2]++; $all="$linija[0]||$linija[1]||$linija[2]||$linija[3]||$linija[4]||$linija[5]||$linija[ ]||$linija[7]"; $pl=fopen("$file", "r+"); fwrite($pl, $all); fclose($pl); break; } ?>[/php:1:b93c801e6e] [zmoderowane] <rzseattle> kod html prosze umieszczac w znacznikach XML a nie php |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Cytat Hej, jeśli jeszcze dobrze pamiętam właściwości checkbox'a to kodzik z góry nigdy nie zwroci Ci info ze jakis z checkboxow nie jest 'zaznaczony'. Z obiektem tego typu (checkbox) jest problem tego typu iż jeżeli nie jest on "checked" to zmienna o nazwie , w tym przypadku np. $odp[2] nie pojawi się powiedzmy w kodzie ( po submicie nie zostanie ona przekazana do skryptu). Jeśli się myle prosze poprawcie mnie.
absolutna racja. mój błąd. each można więc zastosować tu tylko jeśli wiemy ile checkboxów być powinno, więc: [php:1:f79663e45f]<?php if (count($_POST['odp2']) == "5"){ // 5 to liczba wszystkich checkboxów // kod zapisu do pliku; } else { echo("nie wybrano wszystkich pól"); } ?>[/php:1:f79663e45f] [manual:f79663e45f]each[/manual:f79663e45f] nie ma tu zastosowania Jeszcze nie o to mi chodzilo. Mam 5 checkboxów i w momęcie gdy zaznaczam tylko jednego pojawia sie "Nie wypełniles.....", zaznaczam dwa - to samo. Ale gdy zaznacze wszystkie 5 to dopiero wtedy komunikat znika. A gdy liczbe checkboxów zmienilem na 1 to komunikat "nie wypelniles..." pojawia sie w momęcie zaznaczenia 2 odpowiedzi ale jak zaznaczy tylko jedna to jest OK. Jest jescze jeden problem a mianowicie w momęcie gdy ankietowany nie zaznaczy wszystkich wymaganych pól (conajmniej jednego) to i tak skrypt zliczajacy zlicza te glosy mimo tego ze zle zaglosował. Ja sobie wyobrazalem to tak ze jak zaglosuje zle to pojawia sie ztrona popraw.php a jak wszystko ok to strona zliczanie.php ktora zliczy prawidlowe glosy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 12:07 |