checkboxen an Mail übergeben - mehrere Werte
Olk Okenheld
- php
0 Stahli0 Olk0 Olk Okenheld0 dedlfix0 Stahli0 Olk Okenheld0 dedlfix
Hallo zusammen,
ich habe ein Problem, ich wollte in einem funktionierenden Formular zwei Fragen mit checkboxen ergänzen, aber leider bekomme ich max. einen der Werte zurück, warum und was muss ich ändern, damit die Mail die Werte aller angekreuzten checkboxen enthält?
Formular:
...
<input type="checkbox" name="Bereitschaft[]" value="ja - für weitere Fragebögen"> ja - für weitere Fragebögen<br>
<input type="checkbox" name="Bereitschaft[]" value="ja - für Interviews"> ja - für Interviews<br>
<input type="checkbox" name="Bereitschaft[]" value="ja - für Testprodukte"> ja - für Testprodukte<br>
<input type="checkbox" name="Bereitschaft[]" value="nein"> nein<br>
...
PHP-Datei, zum auswerten versenden der E-Mail:
...
/* Bestimmen der Eingabefelder - Teilname am Projekt */
$field20 = $_POST["Bereitschaft"];
...
...
/* Aussehen der E-Mail die gesendet wird */
$message = '
...
'.$_POST["Bereitschaft"].'
...
Früher war an Stelle der checkbox, hier ein radiobutton, der die eine, ausgewählte Antwort auch bestens eingefügt hat, aber nach der Änderung in checkboxen bleibt es leider bei einer, nämlich der letzten Antwort, alle vorherigen werden, bei gesetztem Häkchen ignoriert...
Wer kann mir sagen was ich beim Auswerten des Array falsch mache, dass nur der letzte Wert angegeben wird?
Danke
Olk
Hi,
$field20 = $_POST["Bereitschaft"];
Warum diese Zuweisung?
Früher war an Stelle der checkbox, hier ein radiobutton, der die eine, ausgewählte Antwort auch bestens eingefügt hat, aber nach der Änderung in checkboxen bleibt es leider bei einer, nämlich der letzten Antwort, alle vorherigen werden, bei gesetztem Häkchen ignoriert...
Das ist eigenartig. Eigentlich müsste $_POST['Bereitschaft']
ein Array mit allen ausgewählten Antworten sein. Um all diese Antworten zu erhalten müsstest du es also wie ein Array behandeln. So zum Beispiel.
$message = '
...
Ausgewählte Antworten:
'.explode("\n",$_POST['Bereitschaft']).'
...
';
Warum in deinem Fall immer nur die letzte ausgewählte Antwort ausgegeben wird kann ich nicht erklären. Vielleicht ist in dem Formular versehentlich die alte Version mit den Radiobuttons noch mitenthalten?
Gruß,
Felix
$field20 = $_POST["Bereitschaft"];
Warum diese Zuweisung?
Das liegt daran, dass ich gegen Ende des Scrips eine Abfrage nach dem Vorhandensein bestimmter Felder durchführe, in diesem Fall halt $field20...
Warum in deinem Fall immer nur die letzte ausgewählte Antwort ausgegeben wird kann ich nicht erklären. Vielleicht ist in dem Formular versehentlich die alte Version mit den Radiobuttons noch mitenthalten?
Vielleicht hat er wirklich noch die alte PHP aufgerufen, denn jetzt zum Schluss kam in meiner ursprünglichen Version immer "Array" als Antwort in der Mail.
Das ist eigenartig. Eigentlich müsste
$_POST['Bereitschaft']
ein Array mit allen ausgewählten Antworten sein. Um all diese Antworten zu erhalten müsstest du es also wie ein Array behandeln. So zum Beispiel.
$message = '
...
Ausgewählte Antworten:
'.explode("\n",$_POST['Bereitschaft']).'
...
';
Jetzt gibt er als Antwort in der Mail "Array" aber auch weiterhin nicht welche checkboxen ich gewählt habe...
$message = '
...
Ausgewählte Antworten:
'.explode("\n",$_POST['Bereitschaft']).'
...
';
Da er damit ja wieder nur das Wort "Array" ausgegeben hat, habe ich jetzt weiter probiert, aber nichts funktioniert, außer, wenn ich das Script jeden einzelnen Wert ausgeben lasse. z.B.:
...
~~~php
'.$field20[0].'
'.$field20[1].'
'.$field20[2].'
'.$field20[3].'
...
Dann gibt er jeden Wert einzeln aus, aber es kann doch nicht sein, dass ich für jeden möglichen Wert im Array eine eigene Ausgabe schreiben muss, da muss es doch einen Befehl geben, der das gesamte Array ausgibt oder irre ich so???
echo $begrüßung;
Um all diese Antworten zu erhalten müsstest du es also wie ein Array behandeln. So zum Beispiel.
$message = '
Ausgewählte Antworten:
'.explode("\n",$_POST['Bereitschaft']).'
';
> Jetzt gibt er als Antwort in der Mail "Array" aber auch weiterhin nicht welche checkboxen ich gewählt habe...
Er meinte ja auch implode() statt explode(). Liest du überhaupt nicht nach, was die die anempfohlenen Funktionen machen? Nur du kannst letzlich entscheiden, ob die Lösung die gesuchte ist. Doch dazu muss man sie auch verstehen. Vielleicht hat sich ja der Antwortende geirrt oder dir wissentlich was falsches gesagt.
echo "$verabschiedung $name";
Hi,
Er meinte ja auch implode() statt explode().
Und das kann man nicht mal zum Tippfehler erklären :)
Ja, natürlich meinte ich implode().
Gruß,
Felix
$message = '
Ausgewählte Antworten:
'.implode("\n",$_POST['Bereitschaft']).'
';
Er meinte ja auch implode() statt explode(). Liest du überhaupt nicht nach, was die die anempfohlenen Funktionen machen? Nur du kannst letzlich entscheiden, ob die Lösung die gesuchte ist. Doch dazu muss man sie auch verstehen. Vielleicht hat sich ja der Antwortende geirrt oder dir wissentlich was falsches gesagt.
Jetzt funktioniert es, danke. :-)
In der Tat hab ich mir gestern keinen großen Kopf mehr darüber gemacht, was explode bewirkt und es auch nicht nachgeschlagen, ich war wohl zu müde und genervt, dass es nicht funktionieren wollte und dass hier jemand mit Absicht was falsches sagtm kann ich mir nicht vorstellen. Oder kommt das hier öfter vor?
echo $begrüßung;
dass hier jemand mit Absicht was falsches sagtm kann ich mir nicht vorstellen. Oder kommt das hier öfter vor?
Bösartige Absicht habe ich noch nicht erkennen können. Aber Wissenslücken, Tipp-, Formulierungs- und gedankliche Fehler kommen gelegentlich vor.
echo "$verabschiedung $name";