2017-08-06 35 views
0

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; 

      }}}} 
+0

ブラウザのコンソールエラーを調べて教えてください。 –

+0

ひとつは、ajax optsから 'dataType:" html "、'を削除してください。応答(xml、html、jsonなど)を自動的に検出します。 –

+0

応答がオブジェクトです。これは真実ではない。 response == true – Sidtharthan

答えて

0

これが動作する可能性があります。

...... 
if (response) { 

    setTimeout(function() { 

    window.location = 'index.html'; 
..... 
0

あなたの代わりにオブジェクトを返すことができればそれが良くなる。

if (response.success){ 
    //Your logic 
} 

・ホープ、このことができます:

echo json_encode(['success' => true]); 

を次に、あなたの成功コールバック意志でのチェックは次のようになります。

+0

これを書いているのであれば、検証なしでページを更新するだけです –

+0

あなたは何を意味するのかはっきりしませんが、 'console.log(response);'を使用して条件の直前で、サーバー側から必要な応答が得られていることを確認してください。 –

関連する問題