Wolfram Hüttermann: Daten aus einer Mehrfach-Auswahlbox in die DB schreiben

Beitrag lesen

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