Я создал форму AJAX, которая отправляется на страницу php. Эта форма успешно отправляется с точки зрения, я получаю адрес электронной почты в своей базе данных, и у меня есть письмо с подтверждением, которое отправляется.Форма Ajax отправляется успешно, но появляется предупреждение об ошибке
Однако я получаю оповещение о том, «Ошибка |», поэтому очевидно, что это происходит из этого:
error: function (xhr, textStatus, errorThrown) {
alert(textStatus + "|" + errorThrown);
Я не уверен, почему ошибка бросает, если он работает. Другое дело, эта форма перезагружает страницу. У меня есть event.preventDefault();
на месте, так зачем перегружать страницу?
Я ценю любую помощь.
<form action="" method="POST">
<input type="email" id="footer-grid1-newsletter-input" placeholder="Your Email Address">
<input type="submit" id="footer-grid1-newsletter-submit" name="submit">
</form>
$(document).ready(function(){
$("#footer-grid1-newsletter-submit").on("click", function() {
event.preventDefault();
var newsletter_email = $("#footer-grid1-newsletter-input").val();
$.ajax({
url: "newsletterSend.php",
type: "POST",
data: {
"newsletter_email": newsletter_email
},
success: function (data) {
// console.log(data); // data object will return the response when status code is 200
if (data == "Error!") {
alert("Unable to insert email!");
alert(data);
} else {
/*$(".announcement_success").fadeIn();
$(".announcement_success").show();
$('.announcement_success').html('Announcement Successfully Added!');
$('.announcement_success').delay(5000).fadeOut(400);*/
}
},
error: function (xhr, textStatus, errorThrown) {
alert(textStatus + "|" + errorThrown);
//console.log("error"); //otherwise error if status code is other than 200.
}
});
});
});
ini_set('display_errors', 1);
error_reporting(E_ALL);
$newsletter_email = $_POST['newsletter_email'];
try {
$con = mysqli_connect("localhost", "", "", "");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = $con->prepare("INSERT INTO newsletter (email, subscribed) VALUES (?, NOW())");
if (false===$stmt) {
die('Newsletter email prepare() failed: ' . htmlspecialchars($con->error));
}
$stmt->bind_param('s', $newsletter_email);
if (false===$stmt) {
die('Newsletter email bind_param() failed: ' . htmlspecialchars($stmt->error));
}
$stmt->execute();
if (false===$stmt) {
die('Newsletter email execute() failed: ' . htmlspecialchars($stmt->error));
}
} catch(Exception $e) {
die($e->getMessage());
}
отсутствующих в '' event' на .on ("щелчок", функция() {... 'это должно быть' .он ("щелчок", функция (событие) { ' – roullie
установите 'dataType', а также отправьте' тот же тип из php' – guradio
@guradio. Что именно вы имеете в виду? – Becky