Autor Zpráva
mafos
Profil
Zdravím,
potřeboval bych radu. Dělám přítelkyni dotazník k bakalářce a má tam dotaz, kdy se může vybrat víc než jedna odpověď, maximálně však 5 odpovědí. Vyřešil jsem to pomocí checkboxu. Jak ale potom můžu zkontrolovat jestli byla vybráno opravdu max. 5 odpovědí a ve chvíli kdy by jich bylo víc, že bych vrátil chybu? Posílá checkbox třeba něco jako počet vybraných možností? Nebo jak to jinak vyřešit? Posílám kod jak mám ten checkbox zapsaný.
Děkuji za rady
<table border="0" width="600">
			<tr><td>7) Jaké atraktivity Vás zde nejvíce lákají? (zaškrtněte max. 5 možností)</td><td>
			<tr><td><input type="checkbox" name="atraktivity" value="1">pěší turistika</td></tr>
			<tr><td><input type="checkbox" name="atraktivity" value="2">cykloturistika</td></tr>
			<tr><td><input type="checkbox" name="atraktivity" value="3">vodní sporty</td></tr>
			<tr><td><input type="checkbox" name="atraktivity" value="4">zimní sporty</td></tr>
			<tr><td><input type="checkbox" name="atraktivity" value="5">sportovní akce (závody, utkání, ...)</td></tr>
			<tr><td><input type="checkbox" name="atraktivity" value="6">péče o fyzickou a duševní kondici (horolezectví, fitness, volejbal, ...)</td></tr>
			<tr><td><input type="checkbox" name="atraktivity" value="7">cesty za poznáním (návštěvy hradů, zámků, muzeí, galerií, rozhleden, ...)</td></tr>
			<tr><td><input type="checkbox" name="atraktivity" value="8">venkovská turistika (projížďky na koních, pobyty na farmě, agroturistika, ...)</td></tr>
			<tr><td><input type="checkbox" name="atraktivity" value="9">návštěvy kulturních akcí (výstavy, koncerty, ...)</td></tr>
			<tr><td><input type="checkbox" name="atraktivity" value="10">církevní turistika</td></tr>
			<tr><td><input type="checkbox" name="atraktivity" value="11">jiný (prosím vypište jaký) <input type="text" name="atraktivity-jiny" size=20></td></tr>
		</table>
Majkl578
Profil
Změnil bych kód tak, aby atribut name obsahoval vždy pole, tj. takto: atraktivity[1] pro první checkbox, atraktivity[2] pro druhý apod.
Toto na straně PHP bude přijato jako pole $_POST['atraktivity'] kde budou obsaženy zatržené checkboxy. Jejich počet poté stačí jednoduše zkontrolovat za pomoci funkce count.
mafos
Profil
Super. Takže počet by fungoval. Díky. Ale jak teď mám zjistit jakou hodnotu jsem vybral? Zkoušel jsem tohle aby to vypsala hodnotu, ale to nefunguje :-( Problém je v tom, že když vyberu možnosti 1,2,3, ... takhle za sebou, tak to bez problému zobrazí, ve chvíli kdy ale nevyberu možnosti od 1 za sebou, tak to zlobí. Díky za pomoc
for ($i = 0; $i < count($atraktivity); $i++) echo $atraktivity[$i];
Jan Tvrdík
Profil
mafos:
$vybrane = array_keys($atraktivity);
mafos
Profil
$vybrane = array_keys($atraktivity);
for ($i = 0; $i < count($atraktivity); $i++) echo $vybrane;


Takhle? To mi totiž nefunguje. Zobrazí se tam Array Array ... :-(
Majkl578
Profil
foreach (array_keys($atraktivity) as $item) {
  echo $item;
}
mafos
Profil
Super :-) Teď to funguje. Jenže to nezobrazuje hodnoty z value="" ale zobrazuje to číslo který je v atraktivity[1]. Dá se nějak vyřešit aby to zobrazovalo value? Pokud by to nešlo tak nevadí. Spokojím se i s těma číslama ze závorek.
bonzakcek
Profil
foreach ($_POST["atraktivity"] as $val) {
	echo $val;
}
mafos
Profil
Super. Funguje. Děkuji moc za pomoc

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: