ajaxでfacniggと問題が発生しました。私は連絡フォームで作業していますが、ajax呼び出しで問題が発生しました。 フィールドがすべて正しく入力されていても呼び出しは成功しません。 私はいくつかのことを試みましたが、何も動作していません Someneは私に助言を与えることができます..?Ajaxの呼び出しは決して成功しません
多くのありがとうございます。ここ
$.ajax({
url: "assets/contact_form/process-contact.php",
type: "POST",
dataType: "html",
data: userData,
beforeSend: function() {
$(sb).html('Sending...');
},
success: function (response) {
if (response == true) {
setTimeout(function() {
window.location = 'index.html';
}, 1000);
} else {
$(sb).html('Can not send, please try latter'); //IT GOES STRIGHT TO HERE
}
}
});
}
});
は、PHPのコードです:
<?php
$userData['name'] = filter_var(trim($_POST['name']),
FILTER_SANITIZE_STRING);
$userData['email'] = filter_var(trim($_POST['email']),
FILTER_VALIDATE_EMAIL);
$userData['phone'] = filter_var(trim($_POST['phone']),
FILTER_SANITIZE_STRING);
$userData['message'] = filter_var(trim($_POST['message']),
FILTER_SANITIZE_STRING);
if(! in_array(null, $userData)){
$my_email = '[email protected]';
$nameRegx = "/^[' a-zא-ת]+(\s[' a-zא-ת]+)*$/i";
$phoneRegx = "/^(?:0(?!(5|7))(?:2|3|4|8|9))(?:-?\d){7}$|^(0(?=5|7)(?:-?\d)
{9})$/";
if(strlen($userData['name']) > 2 && strlen($userData['name']) < 70 &&
preg_match($nameRegx, $userData['name'])) {
if(preg_match($phoneRegx, $userData['phone'])){
if(strlen($userData['message']) > 2){
$subject = 'Message from ' . $userData['name'] ;
$message_phone= $userData['message'].'Phone number:
'.$userData['phone'];
$headers = 'From: ' . $userData['email']. "\r\n";
mail($my_email, $subject, $message_phone, $headers);
// send mail
// Save data to db (DON'T FORGET TO CLEAN AGAINST SQL INJECTIONS!!!)
echo true;
}}}}
ブラウザのコンソールエラーを調べて教えてください。 –
ひとつは、ajax optsから 'dataType:" html "、'を削除してください。応答(xml、html、jsonなど)を自動的に検出します。 –
応答がオブジェクトです。これは真実ではない。 response == true – Sidtharthan