为什么我的ajax调用无法检索数据?

时间:2014-04-04 20:28:59

标签: php jquery ajax

我正在进行电子邮件验证。 基本上在js事件中,应该是通过json数据类型中的post发送数据的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);

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

1 个答案:

答案 0 :(得分: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;
    }
});