• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Bei onChange eine E-Mail versenden

andreasandy

New member
Hallo zusammen,

ich habe eine Dropdown-Liste. Wenn hier ein anderer Wert ausgewählt wird, möchte ich, dass eine E-Mail versendet wird. Hier ist mein Code:

PHP:
function preselectListe($name, $valueList, $value, $size, $breite)
{
  if ($breite > 0)
//    echo "<select name=\"$name\" size=$size style=\"width:$breite;\" width=$breite onChange=\"alert('Es wurde Index '+this.selectedIndex+' gewählt');\">";
     echo "<select name=\"$name\" size=$size style=\"width:$breite;\" width=$breite onChange=\"DropDownMail()\">";
  else
//    echo "<select name=\"$name\" size=$size style=\"width:300;\" width=300 onChange=\"alert('Es wurde Index '+this.selectedIndex+' gewählt');\">";
     echo "<select name=\"$name\" size=$size style=\"width:$breite;\" width=$breite onChange=\"DropDownMail()\">";
  for ($i=0; $i < count($valueList); $i++)
  {
    if ($valueList[$i] == $value)
      echo "<option selected>" . $valueList[$i];
    else
      echo "<option>" . $valueList[$i];
  }
  echo "</select>";

  return 0;
}


function DropDownMail()
{
   mail('email@mail.com', 'hier betreff', 'hier mailbody');
}

So funktioniert das nicht. Könnt ihr mir bitte sagen, warum? Die auskommentierte Zeile mit dem alert funktioniert richtig.

Danke!
Andy
 
Danke für die Antwort!
Da ich nicht so viel Erfahrung habe, formuliere ich die Frage anders: wie kann ich mit Hilfe von onChange-Ereignis bei Änderung eine E-Mail versenden lassen?
 
Selbe Antwort. Sende dem Server ein Flag oder auch die Daten und das PHP Script macht das dann. Du musst zwischen Server und Client unterscheiden. PHP ist Server, JS ist Client. Und ich wüsste nicht, dass man mit JS eine E-Mail verschicken kann. Daher brauchst du entweder eine <form> oder ein Ajax Statement womit du dann den nötigen Server Request auslöst.
 
Vielen Dank für die Antwort! Ja, das Client-Server-Konzept ist mir bekannt, nur mangelt es mir an Kenntnissen genau in dem Gebiet "Zusammenspiel von JS und PHP". Werde mir das ganze genauer anschauen müssen.
 
Das Fiddle bringt ehrlich gesagt wenig, da kein PHP-Code ausgeführt wird.

PS: die mail()-Funktion von PHP ist sehr kompliziert - so wie du die Mail damit in einem Einzeiler sendest, wirst du Probleme mit Umlauten bekommen und Mailprovider werden die Mail aufgrund fehlender Header als Spam einstufen. Stattdessen sollte man auf existierende Klassen zurückgreifen.
PPS: wo kommt das $empfaenger her?
PPPS:
PHP:
/* PHP CODE
$id = $_POST['id']; // POST Wert aufnehmen.

if($id){ // Prüfen ob ein Wert angekommen ist.

switch($id){ // Zwischen den einzelnen Zahlen, Werten was auch immer wechseln - würde auch mit If..else gehen.
ist suboptimal: Notice: Undefined index - Entstehung und wie vermeiden
Stattdessen gibt es dafür die Funktion empty():
PHP:
if(!empty($_POST["id"])){
    switch($_POST["id"]){
    ...
}
 
Zurück
Oben