Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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
Php JSON数组缺少元素_Php_Jquery_Html_Json - Fatal编程技术网

Php JSON数组缺少元素

Php JSON数组缺少元素,php,jquery,html,json,Php,Jquery,Html,Json,我正在使用$.getJSONjQuery函数来允许我的站点与不同域中的服务器进行交互。但是,我一直在修复一个导致第三个和第四个数据项未定义的bug。我不确定问题出在哪里 JavaScript: $.getJSON(domain_path + 'display.php?url=' + purl + '&callback=?', function(data) { var username = data['uname']; var point = data['

我正在使用
$.getJSON
jQuery函数来允许我的站点与不同域中的服务器进行交互。但是,我一直在修复一个导致第三个和第四个数据项
未定义的bug。我不确定问题出在哪里

JavaScript:

$.getJSON(domain_path + 'display.php?url=' + purl + '&callback=?', function(data) {

        var username = data['uname'];
        var point = data['point'];
        var email = data['email'];
        var title = data['title'];

});
电子邮件
标题
未定义的
,但
uname
是正确的

JSON由以下PHP生成:

$url = mysql_real_escape_string($_GET['url']);
$result = mysql_query("SELECT * FROM user url='$url'")or die(mysql_error()); 
$row = mysql_fetch_array($result);
if($row){

    $uname = $row['uname'];
    $point = $row['point'];
    $email = $row['email'];
    $title = $row['title'];

    $output = array('uname'=>$uname,'point'=>$point,'email'=>$email,'title'=>$title);
    $out_string =  json_encode($output);
    echo $callback.'('.$out_string.');';
}
JSON结果如下所示:

284927410({"uname":"john","point":"104","email":"john482@yahoo.com","title":"teacher"});
我可以获得
john
104
,但是当我将它们放入
警报()时,
电子邮件和
标题出现
未定义的


有什么规则我错过了吗?或者代码中有错误吗?

我复制了您的环境,使用此代码一切正常:

$.getJSON("http://localhost:8081/test", function(data) {
        alert(data.uname);
        alert(data.point);
        alert(data.email);
        alert(data.title);
    });
其中路径
http://localhost:8081/test
仅返回
{“点”:“104”,“标题”:“老师”,“电子邮件”:john482@yahoo.com,“uname”:“john”}

我看你的代码是正确的。一切都应按预期进行注意:您不需要重建
$output
变量。只需执行
$out\u string=json\u encode($row)-另外,在JS中,我使用
数据。title
而不是
数据['title']
-不认为有什么区别,但也许值得一试。你是如何以及在哪里意识到
电子邮件和
标题
是未定义的。在
var email=data['email']之后立即通知他们并发送数据['email'];var title=数据['title']