N
Narox
Gast
Hallo
Ich habe eine Bootstrap 4 OnePage mit einem Kontaktformular. Header des Formulars:
Klickt man auf den Submit Button wird zunächst geprüft, ob das CAPTCHA geklickt wurde:
Anschließend wird über PHP PEAR die E-Mail versendet (contact.php):
Meine Frage:
Ich möchte aber auf meiner OnePage bleiben und nur ein Modal (Bootstrap Funktion) ausgeben mit dem Hinweis, dass das Formular versendet wurde. Leider weiß ich nicht, wie ich das am Besten umsetze, hat da jemand Erfahrung?
Dachte zuerst ich könnte ich die JavaScript Funktion noch ein else einbauen in dem dann irgendwie das Modal aufgerufen wird mit dem Inhalt von contact.php im Hintergrund und ein "Formular wurde versendet" im Vordergrund. Aber weiß leider nicht, wie technischt am Besten umsetzen.
Ich habe eine Bootstrap 4 OnePage mit einem Kontaktformular. Header des Formulars:
HTML:
<form action="contact.php" class="was-validated" method="post">
Klickt man auf den Submit Button wird zunächst geprüft, ob das CAPTCHA geklickt wurde:
Javascript:
<script>$("form").submit(function(event) {
var recaptcha = $("#g-recaptcha-response").val();
if (recaptcha === "") {
event.preventDefault();
$("#recaptcha-error").text("Bitte Häkchen setzen");
}
});</script>
Anschließend wird über PHP PEAR die E-Mail versendet (contact.php):
PHP:
<?php
require_once "Mail.php";
$host = "xxx.kasserver.com";
$port = "587";
$username = "xxx";
$password = "xxx";
$from = "xxx";
$to = "xxx";
$subject = "Formular";
$body = "<b>Daten des Formulars</b><br>" .
"<br>Anrede: " . $_POST["anrede"] .
"<br>Vorname: " . $_POST["vorname"] .
"<br>Nachname: " . $_POST["nachname"] .
"<br>Nachricht: " . $_POST["nachricht"];
$headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject, 'MIME-Version' => 1, 'Content-type' => 'text/html;charset=iso-8859-1');
$smtp = Mail::factory('smtp', array ('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>
Meine Frage:
Ich möchte aber auf meiner OnePage bleiben und nur ein Modal (Bootstrap Funktion) ausgeben mit dem Hinweis, dass das Formular versendet wurde. Leider weiß ich nicht, wie ich das am Besten umsetze, hat da jemand Erfahrung?
Dachte zuerst ich könnte ich die JavaScript Funktion noch ein else einbauen in dem dann irgendwie das Modal aufgerufen wird mit dem Inhalt von contact.php im Hintergrund und ein "Formular wurde versendet" im Vordergrund. Aber weiß leider nicht, wie technischt am Besten umsetzen.