Hogyan lehet PHP-ban a "text" HTML-mezőt felhasználva többdimenziós tömböt feltölteni?
Egydimenziósban sikerült az alábbi módszerrel:
<form method="post">
<?php
for ($i=0; $i < $n; $i++)
{
$j = $i+1;
?>
A tömb <?php echo $j . "." ?> eleme: <input type="text" name="line[]"> <br>
<?php
}
?>
<input type="submit" name="ready" value="Kész"> <br>
</form>
Ennek viszont a többdimenziós analogonja nem megy. Hogyan kéne?
"Vajon miért van akkor külön programozás rovat?"
Jobbára azoknak, akik tudnak is.
Én sem megyek a kötés-horgolás rovatba érdeklődni arról, hogy is néz ki egy kötőtű.
"Most már én is rájöttem egy módszerre, ami felhasználható, bár nem szép."
A kódodat elnézve a szépségtől még nagyon messze állsz. Jó lesz az.
Ha már megvan, akkor nem akarlak zaklatni, de azért leírok pár gondolatot.
A több dimenziós tömbökhöz már nem használható a html name-automatizálása, ilyenkor sokkal jobb, ha a php generálja ki az input mezők neveit is. Pl: name="line0_row0", line0_row1, ... line12_row5...
Adatértelmezéskor pedig ugyanúgy végig kell menni a tömbök megadott számú elemein, mint a kigeneráláskor.
Kicsit bonyolítja a helyzetet, ha a tömb elemei/dimenziói dinamikusan bővíthetők kliens oldalon, de az is egy jó ujjgyakorlat, javaslom próbáld ki.
#8 "A több dimenziós tömbökhöz már nem használható a html name-automatizálása"
Téves, nagyonis használható, csak limitált mértékben. Az automatikus indexelés az utolsó dimenzióra vonatkozóan működik, tehát egy egydimenziós tömb esetében elég a name="line[]" jelölés, egy két dimenziós esetében szükséges a sor kikötése, de az oszlopé már nem, pl name="line[0][]", három dimenziósnál az első kettő kikötése szükséges, stb stb.
Egyébiránt az általad vázolt felírás rettenetesen ronda, ahelyett hogy normális tömbalakban küldenéd fel a formadatokat, egy nagy massza lesz a $_POST tömbben, és mazsolázhatod ki belőle az értékeket. Ha már a php lehetőséget biztosít arra, hogy tömbösítsük az adatokat, akkor tegyük meg.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!