Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP不将变量返回到ajax调用_Javascript_Php_Jquery_Json - Fatal编程技术网

Javascript PHP不将变量返回到ajax调用

Javascript PHP不将变量返回到ajax调用,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我有一个ajax请求,在返回JSON响应以进行后续处理时遇到问题 在下面的PHP代码中,$unameExists返回true或false,但当我将其发送回JS成功例程console.log(data.unameExists)时;返回为未定义。因此,我的if/else语句执行正确 HTML PHP 阅读手册有助于: 您没有按照jQuery的预期使用回调参数。第一个成功回调参数是从服务器返回的完整数据。它是一个字符串或某种类型的对象,基于数据类型 由于没有设置数据类型,jQuery猜测返回的内容,可

我有一个ajax请求,在返回JSON响应以进行后续处理时遇到问题

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

HTML

PHP


阅读手册有助于:

您没有按照jQuery的预期使用回调参数。第一个成功回调参数是从服务器返回的完整数据。它是一个字符串或某种类型的对象,基于
数据类型

由于没有设置
数据类型
,jQuery猜测返回的内容,可能会直接解析为JSON blob

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

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);
},

这不是成功回调的工作方式。第二个参数是请求的
textStatus
,而不是从php脚本传递的一些数据。脚本返回的所有数据都将在第一个参数中。而回显多个JSON字符串将导致解析错误,因为这将创建无效的JsonTanks@PatrickEvans。那么,你有什么建议?echo$this->renderScript('json.unaeexists')?你能把收到的信息拿出来吗console@Shibon控制台中的消息很简单:“Success”echo json_encode($unameExists);echo$this->renderScript('json',unmeexists);这里有两个echo使用任意onetex@feeela。我按照建议更改了控制台日志,添加了数据类型,还修改了问题以使其更清晰。变量data.unameExists返回为未定义。还有其他建议吗?德克萨斯州!那么,也检查一下你的PHP:
$this->renderScript('json',unmeexists)
=>
unameExists
不是一个变量(缺少美元符号),还要检查方法
renderScript
的实际功能以及如何在此处使用的框架中输出JSON。
$('#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
        }
});
public function check_userAction() {
    $username = trim($_REQUEST['username']);
    $unameExists = Users_Model_Users::isExistUsername($username);
    echo $this->renderScript('json', unameExists);
}
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);
},