Annabel: Daten aus einer Mehrfach-Auswahlbox in die DB schreiben

Hi,

ich habe eine Frage zu Mehrfachauswahlboxen in HTML. Wenn ich die Daten einer einfachen Auswahlbox mit PHP in eine MYSQL-DB schreiben möchte, geht das ja über den definierten Namen der Auswahlbox. Wie aber komme ich an die Werte von einer Mehrfachauswahlbox ran?

Danke für Eure Hilfe!

Gruss Annabel

  1. Hallo Annabel,

    Wie aber komme ich an die Werte von einer Mehrfachauswahlbox ran?

    schau dir mal http://dclp-faq.de/q/q-formular-select-multiple.html an, das sollte helfen.

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
  2. Hallo Annabel,

    ich habe eine Frage zu Mehrfachauswahlboxen in HTML. Wenn ich die Daten einer einfachen Auswahlbox mit PHP in eine MYSQL-DB schreiben möchte, geht das ja über den definierten Namen der Auswahlbox. Wie aber komme ich an die Werte von einer Mehrfachauswahlbox ran?

    Über den Namen und ein Array dazu muüßte man aber wissen was Du wohin schreiben willst!
    Die Daten in der Selectbox mußt Du ja irgendwie definieren.
    Das sieht dann so aus:
    <select name="var[]" multiple>
      <option value="1">
      <option value="2">
       </select>

    TomIRL

  3. Hallo Annabel,

    du stellst eine sehr interessante Frage. Ich glaube, was du willst. Du möchtest nämlich alle selektierten Werte einer Mehrfachauswahlbox übernehmen.

    Wenn du das wirklich willst, geht das nur über JAVASCRIPT. Anbei habe ich ein Programm geschrieben, was dir die Werte einer Mehrfachbox herausliest, wenn du mehrere Einträge auswählst.

    function abschicken()
    {
       var laenge=document.forms[0].liste.length;
       var ergebnis="";
       var Objekt=document.forms[0].liste;
       for(i=0; i < laenge; i++)
       {
         if(Objekt.options[i].selected)
         {
     ergebnis=ergebnis+" "+Objekt.options[i].value;
         }
       }
       document.forms[0].ergebnis.value=ergebnis;
       alert(ergebnis);
       return true;
    }
    //-->
    </script>
    </head>

    <body>
    <?php
    print_r ($_POST);
    ?>
    <h1>Die Selectauswahl</h1>
    <form method="post" onsubmit="return abschicken(); ">
    <select name="liste" multiple="multiple">
    <option value="12">Hallo</option>
    <option value="13"> Test</option>
    <option value="23">Neu</option>
    <option value="15">Mist</option>
    </select>
    <input type="hidden" name="ergebnis" />
    <input type="submit" value="Abschicken" >
    </form>

    </body>
    </html>

    Was macht dieses Programm? Es ist eine Box, die Mehrfacheinträge zulässt. Man kann somit mehrere Einträge auswählen.

    Wichtig ist dabei die Funktion abschicken, die beim Senden der Daten ausgelöst wird. Diese Funktion geht die Liste durch und prüft, ob ein Eintrag ausgewählt worden ist. Ist dies der Fall, wird ein Ergebnisstring mit dem ausgewählten Wert und einem Leerzeichen konkateniert.
    Dieser String wird dann in ein verstecktes Feld namens Ergebnis geschrieben, dessen Wert man dann nach dem Verschicken abrufen kann.

    Willst du auf die Werte dieses Strings zugreifen, musst du den Wert $_POST["ergebnis"] nach den Leerzeilen splitten.

    Ich denke, das war es, was du wolltest, oder?

    Grüße,

    Wolfram

    1. Hallo Wolfram,

      Wenn du das wirklich willst, geht das nur über JAVASCRIPT.

      nein. Ein Satz eckige Klammern hinter dem namen des select-Feldes reicht bei php völlig aus (siehe Toms und mein Posting). Außerdem schließt du damit Nutzer, die - aus welchem Grund auch immer - kein js haben, aus.

      Anbei habe ich ein Programm geschrieben,

      du weißt schon, wie das so ist mit self und so...?

      Willst du auf die Werte dieses Strings zugreifen, musst du den Wert $_POST["ergebnis"] nach den Leerzeilen splitten.

      und was ist, wenn der Wert eines Eintrages ein Leerzeichen enthält?

      Grüße aus Nürnberg
      Tobias

      --
      Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    2. Hallo Wolfram,
      Nette Idee, aber das wäre wie mit Kanonen auf Spatzen zu schiessen!
      Also ne Verschwendung.
      Wenn Du ein Array wie auch immer übergibst kannst Du es mit foreach ()  relativ einfach auswerten.
      Also wozu dann JS ?
      Zu den Problemen Deines Skriptes hatt Dir Tobias ja schon genug geschrieben.

      Viele Grüße aus Berlin

      TomIRL

      1. Hallo Wolfram,
        Nette Idee, aber das wäre wie mit Kanonen auf Spatzen zu schiessen!
        Also ne Verschwendung.
        Wenn Du ein Array wie auch immer übergibst kannst Du es mit foreach ()  relativ einfach auswerten.
        Also wozu dann JS ?
        Zu den Problemen Deines Skriptes hatt Dir Tobias ja schon genug geschrieben.

        Viele Grüße aus Berlin

        Danke für den Hinweis. Man lernt jedenfalls nie aus.

        Grüße,

        Wolfram