PHP没有将变量返回给ajax调用

时间:2018-06-14 03:37:52

标签: javascript php jquery json

我有一个ajax请求,无法正确返回JSON响应以便后续处理。

在下面的PHP代码中,$ unameExists返回true或false,但是当我将其发送回JS成功例程时,console.log(data.unameExists);返回为undefined。因此,我的if / else语句正确执行。

HTML

ID  Diff 
 0  1.12     
 1  0.32     
 2  3.2   

JS

    <input type="text" name="username" id="username" value="<?php echo $this->username;?>" class="middle" />

PHP

$('#username').on('blur', function() {
    $.ajax({
        url: "?module=Iders&controller=index&action=check_user",
        data: { 'username' : $('#username').val() },
        type: "POST",
        dataType: 'json',
        success: function(data, unameExists) {
            console.log(data.unameExists);
            console.log(unameExists);
            if(data.unameExists === 'true') {
                alert('Username is NOT available!');
            }
            else {
                alert('Username is available!');
            }
        },
        error: function(data){
            //error
        }
});

1 个答案:

答案 0 :(得分:0)

阅读手册对我们有所帮助:http://api.jquery.com/jquery.ajax/

您没有像jQuery那样使用回调参数。第一个成功回调参数是从服务器返回的完整数据。它是字符串或某种对象,基于dataType

由于您没有设置dataType,jQuery会猜测返回的内容,并且可能会直接解析为JSON blob。

使用以下console.log()语句检查data - 参数的内容。

success: function(data) {
    /* When your PHP script returns a variable that is encoded into JSON: */
    console.log(data.unameExists);

    /* In all other cases check the `data` arguemtn directly: */
    console.log(data);
},