#javascript #php #forms #contacts
Вопрос:
Я хочу создать контактную форму с использованием php и javascript, и у меня возникли трудности с функцией alert (). Что я хочу сделать, так это проинформировать пользователя о том, что происходит в задней части. Я заметил, что мои функции «эхо» запрашиваются в консоли, и я хочу, чтобы они были видны как функция оповещения ().
Вот мой javascript:
$(document).ready(function() {
$("#submit").click(function() {
console.log("button clicked");
var name = $("#name").val();
var adresse = $("#adresse").val();
var telephone = $("#telephone").val();
var email = $("#email").val();
var project_place = $("#project_place").val();
var message = $("#message").val();
$("#returnmessage").empty(); // To empty previous error/success message.
// Checking for blank fields.
if (name == '' || email == '' || telephone == '' || message == '') {
alert("Please fill out the required fields.");
} else {
// Returns successful data submission message when the entered information is stored in database.
$.post("includes/mail.php", {
name1: name,
adresse1: adresse,
telephone1: telephone,
email1: email,
project_place1: project_place,
message1: message
}, function(data) {
console.log(data);
$("#returnmessage").append(data); // Append returned message to message paragraph.
if (data == "Email sent.") {
$("#frmContact")[0].reset(); // To reset form fields on success.
alert("Email sent.");
}
});
}
});
});
и вот мой php:
<?php
// Fetching Values from URL.
$name = $_POST['name1'];
$adresse = $_POST['adresse1'];
$telephone = $_POST['telephone1'];
$email = $_POST['email1'];
$lieu_du_projet = $_POST['lieu_du_projet1'];
$message = $_POST['message1'];
$email = filter_var($email, FILTER_SANITIZE_EMAIL); // Sanitizing E-mail.
// After sanitization Validation is performed
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
if (!preg_match("/^[0-9]{10}$/", $telephone)) {
echo "Please, enter a valid number";
} else {
$subject = $name;
// To send HTML mail, the Content-type header must be set.
$headers = 'MIME-Version: 1.0' . "rn";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "rn";
$headers .= 'From:' . $email. "rn"; // Sender's Email
$headers .= 'Cc:' . $email. "rn"; // Carbon copy to Sender
$template = 'Hi ' . $nom . ","
. "nnThank you form contacting us,"
. "nName: " . $name
. "nAdresse: " . $adresse
. "nTelephone: " . $telephone
. "nEmail: " . $email
. "nProject Place: " . $project_place
. "nMessage: " . $message
. "nThis is a confirmation email. "
. "nWe'll get back to you as soon as possible";
$sendmessage = $template ;
// Message lines should not exceed 70 characters (PHP rule), so wrap it.
$sendmessage = wordwrap($sendmessage, 70);
// Send mail by PHP Mail Function.
mail("my@email.com", $subject, $sendmessage, $headers);
echo "Email sent.";
}
} else {
echo "Email invalid.";
}
?>
Любая помощь будет признательна, большое спасибо!
Комментарии:
1. похоже, вам просто нужно добавить a
alert(data)
в свою функцию успеха ajax2. … или при
done
обратном вызове для новейшей версии jQuery. В любом случае, за исключением того, что я предполагаю, что вы подтвердили, что запрос AJAX действителен, и он возвращает действительный ответ? Кроме того, использование оповещения в настоящее время считается подходом старой школы, не лучше ли использовать какой-нибудь информационный ящик или модальный стиль?