Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [problem] nakaz wypełniania koniecznych pól w ankiecie
ghanlee
post
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&oacute;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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Synaps
post
Post #2





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Cytat
[php:1:d55867dced]<?php
while (list($key, $value) = each($_POST['odp2']))  
{  
if ($value == ""){$alert .="nie wybrano odpowiedzi nr $key";}  
}  
if (!isset($alert)){
// kod zapisu do pliku;
} else {
echo($alert);
}
?>[/php:1:d55867dced]


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.

A tak dodając z własnego doświadczenia , to do nazywnia checkboxow i ich obslugi rowniez uzywam el. tablicy , tylko że asocjacyjnej. Nazwy wygladaj wtedy $checkbox['pyt1'].Wtedy taki kodzik wyglada tak :
[php:1:d55867dced]
foreach($tablica_pytan as $pytanie){
if(empty($_POST['checkbox'][$pytanie])){
$_error.="Prosze o uzupełnienie odp. do pytania ".$pytanie."n";
}
}
echo $_error;
[/php:1:d55867dced]

Mam nadzieje , że to coś pomoże.

Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 18:29