Mehrere input in übergabe als Array speichern?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Mehrere input in übergabe als Array speichern?

    Hallo, ich habn Problem bezüglich einer Programmierung.
    Ich hab ein Beispiel geschrieben und hoffe das mir jemand hierbei helfen kann.

    PHP-Quellcode

    1. <form method="post">
    2. <?php
    3. for($i = 0; $i < 5; $i++){
    4. print "<input type='hidden' name='$i' value='$i'>$i<input type='text' name='/* */' value='Beispiel[$i]'><br />";
    5. }
    6. ?>
    7. <input type="submit" name="submit" value="Absenden" />
    8. </form>
    9. <?php
    10. $array = $_POST['/* */'];
    11. ?>
    Alles anzeigen


    Ich will das die 'id' und der zugehörige 'text' wert in ner art Array oder so gespeichert werden dass ich es in der Datenbank aktualisieren kann.

    Quellcode



    mfG s1ckST4R
  • Ich hab ein näheres Beispiel Erstellt:

    PHP-Quellcode

    1. <form method="post">
    2. <?php
    3. $sql = mysql_query("SELECT * from test");
    4. while($row = mysql_fetch_array($sql)){
    5. echo "<input type='hidden' name='id' value='$row[id]'>$row[id]<input type='text' name='/* */' value='$row[text]'><br />";
    6. }
    7. ?>
    8. <input type="submit" name="submit" value="submit" />
    9. <?php
    10. if(isset($_POST['submit'])){
    11. $id = $_POST['id'];
    12. $test = $_POST['/* */'];
    13. /* um den passenden text in die passende reihe mit der id einzutragen muss das iwie im array übertragen werden und dann:
    14. mysql_query("UPDATE test SET test_spalte = $test WHERE id = $id");
    15. */
    16. }
    17. ?>
    Alles anzeigen


    Ich will dann das jede zeile also 'id' und 'text' neu eingetragen werden... aber nur überschrieben nicht hinzugefügt.

    mfG s1ckST4R
  • Hallo,

    wenn du den Formularnamen eine eckige Klammer anhängst, bekommst du die Inhalte als Array übergeben. Gibst du einen festen Zahlenwert vor (wie ich es hier mache), dann ist der Eintrag im Array eindeutig identifiziert. Lässt du die Klammer leer, wird es einfach von 0 an hochgezählt.

    Quellcode

    1. while($row = mysql_fetch_array($sql)){
    2. echo <input type='hidden' name='id[]' value='$row[id]'>"$row[id]<input type='text' name='name[$row[id]]' value='$row[text]'><br />";
    3. }


    jetzt kannst du mit einer foreach-Schleife durch alle $_POST['id'] (das ist ja nun ein Array) gehen und dir entsprechend die Texte mit $_POST['name'][$id] ansprechen, die zu dieser id gehören.

    Du könntest sogar das input-Feld für die id weglassen, und mit einer while-Schleife sowohl den Schlüssel als auch den Wert aus dem textfeld-Array ausgeben lassen, fand ich aber bei meinen anfänglichen PHP-Schritten nicht ganz so einfach zugänglich, musst du aber selbst entscheiden, wie fit du dich in PHP fühlst.

    Gruß,
    Sorcerer