SNOWMAN Geschrieben 26. Juli 2004 Geschrieben 26. Juli 2004 Hi, ich arbeite gerade an einem kleinen Script, mit dem ich CDs in die DB eintragen kann. Per PHP generiere ich eine, derzeit noch fixe, anzahl von Textareas mit dem Namen a0, a1, a2 - Die zahl wird durch die variable $a eingefügt. In einer zweiten Datei werden die Inserts durchgeführt, ich greife dabei mit $_POST auf die Textareas der anderen Datei zu. Die 1 im Insert ist die UserID welche eingetragen wird, die anderen beiden Felder bleiben leer, aber wieso? Hier der Quellcode: //ERSTE DATEI //Generieren der Textareas und Eingeben der Werte //DB CONNECT <form method="POST" action="insert_cd.php"> <? $a = 0; for($i = 0 ; $i<30 ; $i++) { echo"<input type=\"textarea\" name=\"a$a\" size=\"55\">"; $a = $a + 1; echo" <input type=\"textarea\" name=\"a$a\" size=\"55\"><br>"; $a = $a + 1; } ?> <input type="submit" value=" GO "> </form> ------------------ //ZWEITE DATEI //insert ausführen //DB CONNECT <? $sql = "insert into cd values ('1', '" .$_GET['a0'] ."','" .$_GET['a1'] ."');"; mysql_query($sql); ?> [/PHP]
kills Geschrieben 26. Juli 2004 Geschrieben 26. Juli 2004 warum nimmst du kein array dafür? dann kannste jede textarea z.b. "a[]" nennen. ist dann auf der nächsten seite nach dem submit in dem array $_POST["a"] alles drinn //ERSTE DATEI //Generieren der Textareas und Eingeben der Werte //DB CONNECT <form method="POST" action="insert_cd.php"> <? $a = 0; for($i = 0 ; $i<30 ; $i++) { echo"<input type=\"textarea\" name=\"a$a\" size=\"55\">"; $a = $a + 1; echo" <input type=\"textarea\" name=\"a$a\" size=\"55\"><br>"; $a = $a + 1; } ?> <input type="submit" value=" GO "> </form> ------------------ //ZWEITE DATEI //insert ausführen //DB CONNECT <? $sql = "insert into cd values ('1', '" .$_POST['a0'] // hier unten anstatt $_GET['a0'] => $_POST['a0'] ."','" .$_POST['a1'] // hier unten anstatt $_GET['a1'] => $_POST['a1'] ."');"; mysql_query($sql); ?> [/PHP]
SNOWMAN Geschrieben 26. Juli 2004 Autor Geschrieben 26. Juli 2004 Werd ich testen wenn ich daheim bin. aber mal noch ne frage dazu: Ich hab noch nicht all zu viel mit array in php zu tun gehabt, aber ich nehm jetzt einfach mal an, dass $_POST[a] auf das erste Element des Array zugreift, $_POST[a+1] aufs zweite, $_POST[a+2] aufs dritte usw. So wie in C/C++, oder!?
kLeiner_HobBes Geschrieben 26. Juli 2004 Geschrieben 26. Juli 2004 nee, IMHO kannste das so machen:$a = $_POST["a"]; echo $a[0]; echo $a[1]; ...[/PHP]
kills Geschrieben 26. Juli 2004 Geschrieben 26. Juli 2004 Werd ich testen wenn ich daheim bin. aber mal noch ne frage dazu: Ich hab noch nicht all zu viel mit array in php zu tun gehabt, aber ich nehm jetzt einfach mal an, dass $_POST[a] auf das erste Element des Array zugreift, $_POST[a+1] aufs zweite, $_POST[a+2] aufs dritte usw. So wie in C/C++, oder!? oder einfach alle in einer schleife durchgehen: // entweder mit for: for ( $i = 0; $i < count($_POST["a"]; $i++) { echo "Schlüssel:". $i . "Wert:" . $_POSt["a"][ $i] . "<br>\n"; } // oder mit foreach: foreach ( $_POST["a"} as $key => $value) { echo "Schlüssel:" . $key . ", Wert:". $value ."<br>\n"; } [/PHP] die for-Schleife geht nur bei numerischen schlüsseln, während die foreachschleife bei allen arten von schlüsseln funktioniert
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden