Autor Zpráva
tomasck
Profil
Dobrý den, včera mi tu Keeehi pomohl s odesílacím skriptem na e-mail. Vše funguje perfektně, ale mám v tom formuláři jednu otázku, kde používám checkboxy a když někdo zaškrtne více možností, stejně mi příjde na e-mail jen jedna odpověď. Jak udělat, aby mi přišlo vše, co se zaškrtlo v té konkrétní v otázce?

<input type="checkbox" name="predmet" value="0">Ekonomika
<input type="checkbox" name="predmet" value="1">Účetnictví
<input type="checkbox" name="predmet" value="2">Písemná a elektronická komunikace
<input type="checkbox" name="predmet" value="3">Fiktivní firma
<input type="checkbox" name="predmet" value="4">Jiné

a skript na tuto část mám takto:

$zprava .= "Otázka 4:".$_POST["predmet"]."\r\n";

Už na tom zase pracuju a přemýšlím delší dobu, ale prostě na to nemohu přijít.

Poradil by mi někdo, jak tento skript změnit? (předpokládám, že to bude ve skriptu a ne v klasickém html)

Děkuji moc za odpověď.


Moderátor panther: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
panther
Profil
tomasck:
stejně mi příjde na e-mail jen jedna odpověď.
protože mají všechny stejné name, přijde ti tedy poslední zaškrtnuté. Ty předchozí se jím přepíšou.

Řešením je použít pole checkboxů, tedy <input type="checkbox" name="predmet[]" value="1"> atd. Přistupovat k tomu pak bude jako k $_POST['predmet'][0] atd.
Mastodont
Profil
Musíš ty checkboxy definovat jako pole:
<input type="checkbox" name="predmet[]" value="0">Ekonomika

A v $_POST pak bude taky pole $_POST['predmet']
Keeehi
Profil
V tom emailu to pak bude vypadat asi takto:
místo:
$zprava .= "Otázka 4:".$_POST["predmet"]."\r\n";
tam bude:
$zprava .= "Otázka 4:".implode(",",$_POST["predmet"])."\r\n";
tomasck
Profil
Ajo, jak je to jednoduché když člověk ví jak na to. Tak znovu Vám všem moc děkuju za radu :).

PS. Omlouvam se, že jsem tam nedal ty pre a /pre.

Dnes se ještě zaměřím na dělání toho, aby mi to při zaškrtnutí "Ne" pár checkboxů "zamrzlo".

Takže kdyžtak se zítra večer zase zeptám, ale doufam, že už to půjde, nechci Vás pořád otravovat.

Tak moc děkuju za rady. :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: