dynamische Formulare

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • dynamische Formulare

    Hi

    ich muss nochmal was fragen. Wie man mit PHP ein Formular aufbaut, dieses dann versendet und in die DB einträgt ist mir schon klar. aber wie mach ich das mit dynamischen Formularfeldern? Ich hab in der DB eine Liste mit mgl Tieren und diese Liste wird im Formular dyn. mit checkboxen angezeigt. Der user soll nun über die checkboxen die Tiere auswählen können, die er haben möchte und die werden nach dem absenden in einer anderen Tabelle gespeichert. Ich weiß jetzt aber nicht wie ich in der PHP Datei die empfangen Daten auslesen kann, ich weiß ja nicht wieviele Checkboxen vorher generiert wurden, da sich die Anzahl der Tiere verändern kann. Mein form sieht wie folgt aus:
    PHP-Code:
    <form enctype="multipart/form-data" method="POST" action="ItemAdd.php">

        <p>Item soll für folgende Tiere verfügbar sein:</p>
        <?php
        
    include("../configuration.php");

        
    $result mysql_query("SELECT * FROM  `availableanimals`") or die(mysql_error());
        while(
    $aktTier mysql_fetch_assoc($result))
        {
            
    $ID $aktTier['ID'];
            
    $Name $aktTier['AnimalType'];
            echo 
    "<input type=\"checkbox\" name=\"".$ID."\" value=\"ON\"> ".$Name."<br>\n";    

        }
        
    mysql_close();
        
    ?>
        </p>

        <p><input type="submit" value="Absenden" name="B1"><input type="reset" value="Zurücksetzen" name="B2"></p>
    </form>
    wie kann ich jetzt in ItemAdd.php die checkboxen auslesen wenn ich nicht weiß wieviele hier generiert wurden?

  • #2
    Hallo,

    wenn du mit eckigen Klammern als Feldnamen arbeitest, werden die von PHP als Array interpretiert und das erlaubt dir, beliebig viele Formularelemente dynamisch zu verwenden, ohne deren Anzahl a priori zu kennen.

    Beispiel:
    HTML-Code:
    <input type="text" name="feld[]" value="wert1" />
    <input type="text" name="feld[]" value="wert2" />
    <input type="text" name="feld[foo]" value="wert3" />
    <input type="text" name="feld[8]" value="wert4" />
    Der obige HTML-Code würde (wenn er nicht vom Benutzer geändert wird) bei PHP so ankommen:

    PHP-Code:
    $_POST["feld"][0] = "wert1";
    $_POST["feld"][1] = "wert2";
    $_POST["feld"]["foo"] = "wert3";
    $_POST["feld"][8] = "wert4"
    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      ähnliche lösung

      PHP-Code:
      <select name="kuscheltiere[]" multiple=''>
      <?php
      $query 
      "SELECT id,name FROM kuschel_tier_tb ";
              
      $result mysql_query($query,$dbp);
              while (
      $row mysql_fetch_row($result)) {
                      
      ?>
                                <option value="$row[0]"> $row[1] </option>
                      <?php
                      
      }
      ?>
      </select>
      und dann wie oben beschrieben, das array enthält die id's der tiere diese kannst du dann z.b. mit ner foreach-schleife auslesen und weiterverarbeiten.
      fotos :

      http://www.flickr.com/photos/rassloff/collections/

      Kommentar

      Lädt...
      X