Hol a hiba a kódban?
Sziasztok adott egy <FORM> <INPUT> al és <CHECKBOX> al.
Ime:
79: <form action="etlap.php" method="get">név:
<input name="nev">
<input type="checkbox" name="menu[]" value="I. Menü"> I. Menü
<input type="checkbox" name="menu[]" value="II. Menü">II. Menü
<input type="checkbox" name="menu[]" value="III. Menü">III. Menü<BR><BR><input type="submit" value="küldés"></form>
A következő PHP-t írtam hozzá: (Életem első önnálló PHP próbálkozása)
80: <?php
81: echo "<ol><li>";
82: echo "$nev";
83: $adat= array ($menu);
84: foreach ($adat as $kiir)
85: {
86: echo "\t\t $kiir";
87: }
88: echo "</li></ol>";?>
A következő értéket kapom vissza:
1. Név Array
1. Kérdés?: Miért nem írja ki az értéket? Úgy tudom a checkbox value értékét kéne kiírnia (I. Menü stb..)
2. Úgy szeretném megcsinálni, hogy ha valaki beírja a nevét, és hogy melyik menüt választja akkor az nem tünik el hanem látható lesz, és a jelentkezők nevéből egy számozott lista íródik.
Sejtem hogy úgy kellhogy egy harmadik változóban eltárolom az értéket és az új adatok mindíg hozzáadódnak,és azt íratom ki. De pontosan hogy lehet megcsinálni?
Itt tudjátok megnézni hogy hogyan (nem)működik... http://www.woodtiger.atw.hu/etlap.php
Köszi a segítséget!
■ Ime:
79: <form action="etlap.php" method="get">név:
<input name="nev">
<input type="checkbox" name="menu[]" value="I. Menü"> I. Menü
<input type="checkbox" name="menu[]" value="II. Menü">II. Menü
<input type="checkbox" name="menu[]" value="III. Menü">III. Menü<BR><BR><input type="submit" value="küldés"></form>
A következő PHP-t írtam hozzá: (Életem első önnálló PHP próbálkozása)
80: <?php
81: echo "<ol><li>";
82: echo "$nev";
83: $adat= array ($menu);
84: foreach ($adat as $kiir)
85: {
86: echo "\t\t $kiir";
87: }
88: echo "</li></ol>";?>
A következő értéket kapom vissza:
1. Név Array
1. Kérdés?: Miért nem írja ki az értéket? Úgy tudom a checkbox value értékét kéne kiírnia (I. Menü stb..)
2. Úgy szeretném megcsinálni, hogy ha valaki beírja a nevét, és hogy melyik menüt választja akkor az nem tünik el hanem látható lesz, és a jelentkezők nevéből egy számozott lista íródik.
Sejtem hogy úgy kellhogy egy harmadik változóban eltárolom az értéket és az új adatok mindíg hozzáadódnak,és azt íratom ki. De pontosan hogy lehet megcsinálni?
Itt tudjátok megnézni hogy hogyan (nem)működik... http://www.woodtiger.atw.hu/etlap.php
Köszi a segítséget!
Itt
84: foreach ($adat as $kiir)
helyett:
83: <------ ezt a sort nyugodtan húzd ki
84: foreach ($menu as $kiir)
Hogy ne "tűnjön el" a jelentkező, ahhoz valamilyen formában el is kell tárolni az értékeket: szövegfájlban vagy adatbázisban, majd onnan visszaolvasva kiírni.
Én mondjuk nem checkboxokkal oldanám meg, hanem rádiógombokkal - gondolom egy ember csak egy menüt választ. De lehet, hogy tévedek...
P][G
Ha kihúzom, akkor ezt a
Warning: Invalid argument supplied for foreach() in /etlap.php on line 83
A fenti 84. sor lett a 83. természetesen, mivel egy sort kihúztam.
Először így írtam meg, a hibaüzenet miatt változtattam rajta...
mukodik az.... sajnos ::)
lenyeg az, hogy mukodik az lazan, csak amikor eloszor mesz az oldalra akkor semmi $_GET nincs, ezert hat nincs array sem amin a forech vegigfuthatna es ezert a hibauzenet. :)
esetleg kiprobalhatod, hogy:
mellesleg a register globals = on egy rossz dolog, valoban radiobuttont, vagy select/optiont kero helyzetnek tunik az egesz, es en a helyedben eloszor a html-t tanulnam meg nem a php-t.
Rádio buttont azért nem
$_GET
slink
http://20y.hu/
Koránkelők
P][G
Ez a jó megoldás,
A 2. kérdésre tudtok valami megoldást?
Tehát ha valaki 2.-nak 3.-nak írja be magát az előtte lévők is megjelenjenek a listában, és ne írja felül őket...
Adatok tárolása a megoldás
Egy űrlap postázásakor az értékek átkerülnek az őt feldolgozó kódnak (jelen esetben ugyanaz az oldal), de amennyiben nem tárolod el őket adatbázisban (akár egyszerú szöveges állomány is lehet), akkor elvesznek. Tehát az űrlap postázásakor szükséges egy olyan kód részletet megírnod, ami a kapott adatokat eltárolja, kiíratásnál pedig nem az űrlapról érkező adatokkal kell törődnöd, hanem az adatbázisból kell visszaolvasni az összes korábban elmentett rekordot.
--
slink
http://20y.hu/