Mehrfachauswahl Dropdownmenü Email

hertawin

Grünschnabel
Hallo zusammen,

habe folgendes Problem. Ich will ein vorhandenes Formular etwas modifizieren. Schon lange recherchiert, aber für meinen Zweck nichts gefunden oder ich habe es nicht verstanden.
In meinem Formular, dessen Eingaben über ein E-Mail geschickt werden sollen, soll nun eine Mehrfachauswahl vorkommen.

PHP:
<select name="namen" size="5" multiple>
	<option value="Herbert">Herbert</option>
	<option value="Manfred">Manfred</option>
	<option value="Knut">Knut</option>
	<option value="Karl">Karl</option>
	<option value="Hans">Hans</option>
</select>

Im E-Mail steht dann u.a.
PHP:
Der/die ausgewählte/n Name/n:
$namen

Es klappt aber nicht, im E-Mail kommt nur der "Hans", auch wenn ich auch noch andere Namen markiert habe.

Was muss ich in diesem Fall tun? Muss man unbedingt Javascript nehmen?

Momentan klappt es auch mit dem Pflichtfeld mit eingebauter Fehlermeldung, falls nicht ausgefüllt, aber ob es mit Mehrfachauswahl noch klappt, weiß ich nicht. Sicherheitshalber poste ich das gleich mit.
PHP:
   // Prüfung Namen

         if(empty($_POST['namen'])){
	
         $success = "nein";
		   
         $msg = $msg .$lang['namen_fehlerm'] ."<br>";
		   
	}

Unter $lang bzw. in der lang_de.php findet man die ausgeschriebene Fehlermeldung, die in einem bestimmten Bereich eingesetzt wird.

Kann mir jemand helfen?
Schöne Grüße
hertawin
 
Hallo,

per
Code:
<select name="namen[]" size="5" multiple>
    <option value="Herbert">Herbert</option>
    <option value="Manfred">Manfred</option>
    <option value="Knut">Knut</option>
    <option value="Karl">Karl</option>
    <option value="Hans">Hans</option>
</select>

auf den Array namen[] zugreifen.
Wichtig ist, dass es ein Array ist ;)
 
Hallo allerseits,

ich habe es über Umwege rausgefunden!

Das muss man alles machen im Formular:

1. ganz am Anfang die Abfrage

PHP:
$namen = $_REQUEST['namen'];

üblicherweise $_POST, in diesem Fall aber $_REQUEST

2. am Formularfeld
PHP:
<select name="namen[]" size="5" multiple>

3. Beim E-Mail-Versand an Absender und Empfänger:

PHP:
Wer ist dabei: ".implode(", ",$namen)."

Das Komma ", " macht die Kommas zwischen den Namen.

Ich versteh' nicht, dass das im ganzen Internet nirgendwo so kurz, bündig, komplett und verständlich zu finden war!

Viele Grüße
hertawin
P.S. Die Pflichtfeldabfrage musste nicht geändert werden, obwohl es immer noch POST darin heißt.
 
Anmerkung: Wahrscheinlich konntest du so etwas nicht finden, weil man entweder das eine oder das andere Problem hat. Und um das mit dem implode() rauszufinden braucht man kein Thema eröffnen, denn es steht schließlich im PHP-Handbuch. Ach ja: $_REQUEST enthält sowohl die Daten aus $_GET als auch aus $_POST und $_COOKIE. In einem Formular solltest du entweder $_GET oder $_POST verwenden.
 
Zurück