Mehrere input in übergabe als Array speichern?

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • 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 Source Code

    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. ?>
    Display All


    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.

    Source Code



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

    PHP Source Code

    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. ?>
    Display All


    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.

    Source Code

    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