Abfrage ob Email gesendet werden soll

BDC

Grünschnabel
Hallo,

ich habe eine PHP Seite auf der Änderungen an einem Datensatz durch den Benutzer vorgenommen werden können. Nach dem Speichern in der DB wird geprüft ob ein Datum sich verändert hat.
Sollte das der Fall sein, so soll eine Abfrage kommen ob eine E-Mail an den Kunden verschickt werden soll.

Die PHP if Anweisung funktioniert soweit, jedoch bin ich auf dem Gebiet Javascript neu und könnte hier Hilfe gebrauchen. Letztlich soll ein Fenster aufgehen die dem Nutzer vorschlägt eine Mail zu versenden. Das Versenden der Mail würde dann über einen weiteren Seitenaufruf stattfinden.

Wie bekomme ich die JavaScript Abfrage hin ? Es wird kein Button betätigt sondern durch das Script bedingt innerhalb der If Anweisung ausgeführt. Zu sehen im nachstehenden Code:
PHP:
<?php 
}
}
else {


echo "Hier soll eine Abfrage erscheinen, ob der Kunde per Mail informiert werden soll";

}
?>
 
Eine solche Konstellation funktioniert nicht, da PHP auf dem Server und Javascript auf dem Client laufen. Ist das Formular erst einmal abgesendet, ist auf dem Client Die Seite weg und damit auch die Grundlage für JS. Du müßtest also eine von PHP generierte Ergebnisseite vom Server an den Client schicken, damit der auf dieser dann ein JS Script mit der Emailabfrage startet. Machbar, aber sehr umständlich.

Vernünftiger wäre, das alles über den Server laufen zu lassen. Also vom Server eine HTML Seite erstellen lassen, auf der die Abfrage dann abläuft.

Wenn du JS einsetzen willst, müßtest du Datensatzänderung über AJAX an ein PHP Script schicken lassen. Dessen Antwort kann dann JS auswerten und das Abfragefenster einblenden.
 
Ich kann zwar nicht nachvollziehen, warum die Abfrage via JS erfolgen soll, aber laut Problemstellung willst du etwas Ähnliches wie folgend:

(reine JS evt mit jQuery austauschbar)
PHP:
<?php
}
}
else {
echo '<script>
       (function(){
           var abfrage = confirm(\'Soll Mail versendet werden?\');
           if (abfrage == true) {
               var xhr = new XMLHttpRequest();
               
               xhr.open(\'GET\', \'neueseitenaufruf.php?eventuellid='.$id['id'].'\');
               xhr.onload = function() {
                   if (xhr.status === 200) {
                       alert(\'JA->erfolg: \' + xhr.responseText);
                   }
                   else {
                       alert(\'JA->fehlschlag\' + xhr.status);
                   }
               };
               xhr.send();

           } else {
               alert(\'Nein\');
           }
       })();
   </script>';
}
?>
 
Zurück