Checkbox a php

Programovacie jazyky, rady, poradňa...
m3thod-man
Star
Star
Príspevky: 561
Registrovaný: 23 sep 2005, 15:17
Kontaktovať používateľa:

Checkbox a php

Príspevok od používateľa m3thod-man »

No mam proste formular kde mam dynamicky generovanu tabulku.Kazdy riadok obsahuje checkbox.Je tam nastaveno meno aj hodnota. Uzivatel nasledne zaskrtne par checkboxov a odosle POSTom. No a tu je probelm.
Proste by som potreboval ak je zaskrtnuty checkbox tak predat danu hodnotu dalej.Ked zaskrtnem vsetky hodnoty tak to funguje ale ked nezaskrtnem vsetko tak to nefunguje..

Checkbox

<input type="checkbox" name="h1" value="country">

A php ( v tomto pripade bolo 9 checkboxov)

for ($i=1; $i<=9; $i++){

if (isset($_POST["h".$i])){

$v[$i]=($_POST["h".$i]);
}
}

Proste ked zasrtnem vsetky tak to prejde v pohode ale ak nezasrtnem aspon jeden tak uz to nejde :(
programator
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 18 apr 2005, 8:31
Bydlisko: Papua new Guinea
Kontaktovať používateľa:

Príspevok od používateľa programator »

Malo by sa to dat vyriesit nasledovne :

Kód: Vybrať všetko

<input type="checkbox" name="h[]" value="country"> 

Kód: Vybrať všetko

$h = $_POST['h'];

for ($i=1; $i<=9; $i++) {
   if (isset($h[$i])) {
      $v[$i]=($h[$i]); 
   } 
}
m3thod-man
Star
Star
Príspevky: 561
Registrovaný: 23 sep 2005, 15:17
Kontaktovať používateľa:

Príspevok od používateľa m3thod-man »

skusil som to stym polom,ale nastala chyba uz pri predavani z POST premenj do lokalnej.

Kód: Vybrať všetko

<input type="checkbox" name="vrstvy[]" value="country">

Kód: Vybrať všetko

$vrstvy = $_POST['vrstvy'];

EDIT

vlastne to prejde ale chova sa to velmi divne..ked neoznacim nic to nefunguje vobec, a ked pristupujem k hodnotam cez pole ako vrstvy[2] tak raz to vypise a raz chyba.
Vyzera ako by nevedel pracovat s tymi nechecknutymi hodnotami..
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

musis este zistovat, ze ci co i v tom poli existuje...
programator
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 18 apr 2005, 8:31
Bydlisko: Papua new Guinea
Kontaktovať používateľa:

Príspevok od používateľa programator »

m3thod-man napísal:vlastne to prejde ale chova sa to velmi divne..ked neoznacim nic to nefunguje vobec, a ked pristupujem k hodnotam cez pole ako vrstvy[2] tak raz to vypise a raz chyba.
Vyzera ako by nevedel pracovat s tymi nechecknutymi hodnotami..
Ano, vsak formular odosiela iba zaskrtnute checkboxy. ine nezaskrtnute.
Skus blizsie popisat ako vyzera formular, mozno to pomoze viac objasnit situaciu...
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

ved ak mozes, tak to sem skus dat cely ten zdrojak...
m3thod-man
Star
Star
Príspevky: 561
Registrovaný: 23 sep 2005, 15:17
Kontaktovať používateľa:

Príspevok od používateľa m3thod-man »

No skusal som experimentovat vselijak ale je to zvlastne.Ked oznacim 3 tak to vypise len 2 alebo hodi chybu proste neviem to tam dostat :(
No toto je formular

Kód: Vybrať všetko

<form action="new.php" method="POST">
<table border='1' align='left'>
<tr><th>Nazov vrstvy</th><th>Geometria</th><th>Zobrazit</th></tr>
<tr><td>country</td><td>polygon</td><td>
<input type="checkbox" name="vrstvy[]" value="country"></td></tr>
<tr><td>reky</td><td>Linia</td><td><input type="checkbox" name="vrstvy[]" value="reky"></td></tr>
<tr><td>zeleznice</td><td>Linia</td><td><input type="checkbox" name="vrstvy[]" value="zeleznice"></td></tr>
<tr><td>latlong</td><td>Linia</td><td><input type="checkbox" name="vrstvy[]" value="latlong"></td></tr>
<tr><td>CITIES</td><td>Bod</td><td align="center"><input type="checkbox" name="vrstvy[]" value="CITIES"></td></tr>
<tr><td>cr</td><td>polygon</td><td align="center"><input type="checkbox" name="vrstvy[]" value="cr"></td></tr>
<tr><td>kraje_pseudo</td><td>polygon</td><td><input type="checkbox" name="vrstvy[]" value="kraje_pseudo"></td></tr><tr><td>silnice</td><td>Linia</td><td align="center"><input type="checkbox" name="vrstvy[]" value="silnice"></td></tr>
<tr><td>dsnimky</td><td>Linia</td><td align="center"><input type="checkbox" name="vrstvy[]" value="dsnimky"></td></tr>
<tr><td><input type="submit" value="Ok"/></td></tr>
</table>
</form>
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

a to ti este nikto nepovedal ze polia v PHP su indexovane od 0 :?: :lol:
programator
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 18 apr 2005, 8:31
Bydlisko: Papua new Guinea
Kontaktovať používateľa:

Príspevok od používateľa programator »

Uz je to jasne.... ma to byt nasledovne :

Kód: Vybrať všetko

$vrstvy = $_POST['vrstvy']; 

for ($i = 0; $i < count($vrstvy); $i++) { 
   if (isset($vrstvy[$i])) { 
      $v[$i] = $vrstvy[$i]; 
   } 
}
//edit: gwixt ma predbehol :) ... presne v tom bola chyba,
m3thod-man
Star
Star
Príspevky: 561
Registrovaný: 23 sep 2005, 15:17
Kontaktovať používateľa:

Príspevok od používateľa m3thod-man »

jo uz to facha,diky..ties som sa osral stym indexovanim od nuly :oops:
Napísať odpoveď