Multiple Select Auswahl an PHP Array übergeben

20. März 2010  |  Kommentar schreiben   |  Tags: , , , , , , , ,



Bei Facebook teilen

Als Fortsetzung von unserem letzten Artikel “Select Options automatisch mit Javascript markieren“, nehmen wir uns heute ein weiteres Problem vor, dass sich auf die Übergabe der Mehrfachauswahl der Selectoptions an PHP bezieht. Nachdem wir unsere Mehrfahauswahl mit Javascript getroffen haben, wollen diese komfortabel an PHP übergeben.

Problematik

Der Standardfall, wenn wir ein HTML-Select nutzen, sieht bei der gängigen Programmierung so aus:

<select name="MeinSelect">
<option value="1">Erster Element</option>
<option value="1">Erster Element</option>
</select>

Hier können wir nur eine Option auswählen und auch nur eine Option beim Absenden des Formulars abfangen. Um die Mehrfach-Auswahl des Selects zuzulassen, müssen wir das Feld so definieren:

<select name="MeinSelect" multiple="multiple">
</select>

Hier fängt PHP jedoch nur ein Element ab, wenn man das Formular absendet. Was tun?

Lösung

Um PHP zu helfen einzusehen, dass wir nicht einfach nur eine Option mit unserem Select abschicken, müssen wir unseren Select wie folgt definieren:

<select name="MeinSelect[]" multiple="multiple">
</select>

Hier fällt auf, dass wir beim Namen des HTML-Feldes die Zwei eckige Klammern hinzugefügt haben – name=”MeinSelect[]“. Da ändert sich nichts an der HTML Programmierung, jedoch somit teilen wir PHP mit, dass wir eigentlich ein Array übergeben und dieses Array wird automatisch über die $_POST Variable verfügbar:

foreach($_POST['MeinSelect'] as $MarkiertesElement) {
echo MarkiertesElement;
}

Aufgrund des Positionieren der Klammer, berücksichtigt PHP unser Select auf eine andere Art und Weise und kann die Auswahl auslesen. Was uns bleibt ist diese Werte in einer for Schleife auszulesen und zu nutzen. Somit können Sie beispielsweise eine Auswahl an Tags einer Seite zuordnen und bei jedem Durchgehen der Schleife führen Sie ein MySQL “Insert” aus.

Fazit

Die Übergabe der Mutliple Select Auswahl an PHP hilft Ihnen eine Mehrfachauswahl auch Ihren Nutzer zur Verfügung zu stellen. Die Alternative hierzu wäre die Elemente zu listen und neben jedem Element eine Checkbox zu implementieren, die Sie dann einzeln auswerten müssen. Diese Methode ist viel komplizierter. Die Nutzer sind mittlerweile an die Mehrfachselektierung gewöhnt. Wenn Sie ihnen das bequemer machen wollen, können Sie nützliche Auswahl-Methoden mit Javascript einbauen. Lesen Sie hier mehr dazu – “Select Options automatisch mit Javascript markieren“.

Teilen

Hinterlasse eine Antwort

Du musst angemeldet sein, um einen Kommentar abzugeben.