2014-04-04 41 views
0

我正在處理一個電子郵件驗證。 基本上,在js事件中應該是通過json數據類型發送數據的ajax調用,然後第二個ajax調用應該從處理程序中檢索數據。 我不知道我在做什麼錯。這裏有兩段簡短的代碼。爲什麼我的ajax調用不會檢索數據?

jQuery的

$(document).on('focuson',"input#signup_password_input",function(){ 
var this_user_input=$("input[name='signup_email_input']").val(); 
if ((error_one_passed==1)&&(error_two_passed==1)){ 
$.ajaxSetup({ cache:false }); 
$.ajax({ 
    url: 'ajax_email_validation.php', 
    type: "POST", 
    dataType:'json', 
    data: ({email_validation_ajax: "+this_user_input+"}), 
    success: function(data) { 
       $.ajax({ 
        url:'ajax_email_validation.php', 
        data: data, 
        dataType:'json', 
        success:function(data1) { 
         var response_from_database=data1; 
        } 
       }); 
      } 
}); 
} 
}); 

PHP

include('mysql/database.php'); 
if (!isset($_POST["email_validation_ajax"])){$json_array = array('request' => error, 'response' => none);} 
$dbcheck_email_validation=$_POST["email_validation_ajax"]; 
$dbcheck_email_validation=htmlspecialchars($dbcheck_email_validation); 
$dbcheck_email_validation=mysql_real_escape_string($dbcheck_email_validation); 
$dbcheck_email_validation_query=mysql_query("SELECT * FROM users WHERE email='$dbcheck_email_validation'",$db); 
$dbcheck_email_validation_assoc=mysql_fetch_assoc($dbcheck_email_validation_query); 
if (!empty($dbcheck_email_validation_assoc)){$json_array = array('request' => received, 'response' => negative);} 
elseif (isset($_REQUEST["email_validation_ajax"])) {$json_array = array('request' => received, 'response' => affirmative);} 
echo $_POST['email_validation_ajax']; 
echo json_encode($json_array); 

如果有人能幫助我,我真的很感激。

+0

我不認爲問題與焦點作爲一個JS事件。我糾正了這一點,但它仍然行不通。 – OlegArsyonov

+1

你不應該做兩個AJAX調用。您的第一個電話應提交您的數據並從您的PHP腳本中檢索響應。該響應被傳遞給你的「成功」功能。 –

回答

0

您請求json,然後沒有返回json。相反,你返回一些純文本+一些JSON。

echo $_POST['email_validation_ajax']; 
echo json_encode($json_array); 

你應該只是返回json。

echo json_encode($json_array); 

您也只需要執行一次ajax調用。

$.ajax({ 
    url: 'ajax_email_validation.php', 
    type: "POST", 
    dataType: 'json', 
    data: { 
     email_validation_ajax: this_user_input // << this was also incorrect 
    }, 
    success: function (data) { 
     var response_from_database = data; 
    } 
}); 
相關問題