Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Formular -> Mehrfachauswahl -> Array?

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Formular -> Mehrfachauswahl -> Array?

    Hallo Community,

    ich habe da ein Problem, welches ich leider nicht gelöst bekomme.
    Wenn ich ein HTML-Formular habe, in dem ein multiple-select Feld steckt,
    wie kann ich dafür sorgen, dass die Daten der Auswahl entsprechend in meine MySQL Datenbak wandern?

    Wenn ich z.B. dieses HTML-Formular habe:

    Code:
    <form action="abindiedatenbank.php" method="post">
    
     <select name="leute" multiple="multiple">
       <option value="1">Peter</option>
       <option value="2">Sven</option>
       <option value="3">Thorsten</option>
       <option value="4">Dieter</option>
     </select>
    
    <p>
    
    <input name="ueberschrift" maxlength="100">
    
    <p>
    
    <textarea name="text" cols="30" rows="6"></textarea>
    
    <p>
    
    <input type="submit" name="senden" value="weg damit">
    
    </form>
    Bei einfachen Auswahllisten nehme ich ja...

    PHP-Code:
    $leute $_POST['leute'];
    $ueberschrift $_POST['ueberschrift'];
    $text $_POST['text']; 
    ... um die Daten entgegenzunehmen... und sie später in eine Datenbank zu speichern.

    Wenn jetzt jedoch jemand z.B. Peter und Thosten im SELECT-Feld auswählt,
    wie kann ich dafür sorgen, dass es zwei Eintragungen in die Datenbank gibt?

    Funktioniert das mit Arrays? Muss ich das Formular anders gestalten?

    Ich bitte um Hilfe...


  • #2
    Hi,

    ein Multiple-Select-Feld liefert die Daten dann automatisch als Array. Du muss das Array nur durchlaufen (z.B. mit foreach) und innerhalb der Schleife deinen Datensatz schreiben.

    Gruß
    Cy

    Kommentar


    • #3
      Oh, ich glaube, da erwartest Du ein bisschen zu viel von mir

      Nehme ich denn im obigen Beispiel das SELECT-Feld "leute" entgegen mit

      $leute = $_POST['leute'];

      (also ganz normal) ?

      Könntest Du mir exemplarisch die foreach-Geschichte erläutern?

      Wäre sehr dankbar.

      Kommentar


      • #4
        Also ich denke ins Manual gucken ist nicht zu viel verlangt, da steht mit Sicherheit ein Beispiel, aber bitte:

        PHP-Code:
        $leute $_POST['leute'];
        if(
        is_array($leute))  // falls $leute ein Array ist
        {
          foreach(
        $leute as $value)  // Array mit Leute nacheinander durchgehen
          
        {
            
        // hier der Code zum Speichern
            // in $value befindet sich bei jedem Schleifendurchlauf eine der ausgewählten Nrn der $leute
          
        }
        }
        else if(!empty(
        $leute))  // wenn $leute kein Array ist, aber auch nicht leer ist
        {
          
        // hier der Code zum speichern

        Kommentar


        • #5
          Du musst im Formular noch name="leute" in name="leute[]" umändern.

          Kommentar


          • #6
            Wenn auch mit deutlicher Verspätung:

            Vielen Dank @cycap - habe jetzt auch diverse Tutorials durchgelesen

            Ok, jetzt funzt das ganze auch.

            Kommentar

            Lädt...
            X