json没有值,但print_r有值php pdo jquery ajax

json没有值,但print_r有值php pdo jquery ajax,php,jquery,ajax,json,pdo,Php,Jquery,Ajax,Json,Pdo,如果我这样做 印刷(国家); echo json_编码($country) 第二个元素 Array ( [0] => Array ( [sysid] => 1 [code] => 140101000 [name] => China [parentid] => 1 ) [1] => Array (

如果我这样做

印刷(国家); echo json_编码($country)

第二个元素

Array
(
    [0] => Array
        (
            [sysid] => 1
            [code] => 140101000
            [name] => China
            [parentid] => 1
        )

    [1] => Array
        (
            [sysid] => 2
            [code] => 140102000
            [name] => Japan
            [parentid] => 1
        )

    [2] => Array
        (
            [sysid] => 3
            [code] => 140103000
            [name] => Hongkong
            [parentid] => 1
        )
)
更新

我想我发现了这个问题,虽然我还没有找到解决方案,但我认为字符
ñ
'
是他们不会为json返回值的原因。关于如何让它返回这些值,我有什么想法吗?

试试看
JSON.parse(数据)
将字符串转换为JSON

Array
(
    [0] => Array
        (
            [sysid] => 1
            [code] => 140101000
            [name] => China
            [parentid] => 1
        )

    [1] => Array
        (
            [sysid] => 2
            [code] => 140102000
            [name] => Japan
            [parentid] => 1
        )

    [2] => Array
        (
            [sysid] => 3
            [code] => 140103000
            [name] => Hongkong
            [parentid] => 1
        )
)


[
{"sysid":"1","code":"140101000","name":"China","parentid":"1"},{"sysid":"2","code":"140102000","name":"Japan","parentid":"1"},{"sysid":"3","code":"140103000","name":"Hongkong","parentid":"1"}
]
试试这个

    $.ajax({
    type: 'POST',
    url: '../include/country.php',
    dataType : "json",
    data: {
        continentid: id
    },
    success: function(data) {
  data=  JSON.parse(data);
      data.each(key,value)  {

           console.log("PAIR " + i + ": " + data[key].sysid);
           console.log("PAIR " + i + ": " + data[key].name);
       }
    }
});
var数据=[{
“sysid”:“1”,
“代码”:“140101000”,
“名称”:“中国”,
“父ID”:“1”
}, {
“sysid”:“2”,
“代码”:“140102000”,
“名称”:“日本”,
“父ID”:“1”
}, {
“sysid”:“3”,
“代码”:“140103000”,
“姓名”:“香港”,
“父ID”:“1”
}];
$(数据)。每个功能(i、v){
log(“对”+i+:“+v.sysid”);
console.log(“对”+i+:“+v.name”);
});

添加此行
$dbh->query(“设置字符集utf8”)到我的配置文件修复了这个问题,因此它确实与特殊字符有关,如
ñ
json\u如果有特殊字符,请使用返回空值的编码共享您的json结构。类似于上面的内容…例如,一个是大陆列表,第一个不会返回值,但如果打印,我将返回值在country.php上使用
json\u encode
,并与问题共享输出如果
print\r
与您的
json
之间存在差异,请在问题中添加这两个选项。因此,其他人很容易发现问题。区别在于,当我打印时,我在ajax成功中获得了输出,但在json非使用(每个循环)函数而不是(for循环)函数上,很抱歉,我没有看到这些数据。每个(键,值){console.log(“PAIR”+i+:“+data[key].sysid);console.log(“PAIR”+i+:“+data[key].name);}使用此值而不是(forloop)数据。每个(键,值){意外标记{当我删除它时,我会得到意外标记Asame result sir no console.log for json,但第一个元素有print_r,但第二个元素上都有删除
print_r($country)
来自您的php代码。只有
echo json_encode()
;因为您使用的是
数据类型:“json”,
。响应必须是json格式我删除打印\r同一件事no console.log第一次第二次我是否需要更改其他内容,因为我可以看到您只添加了初始化,对吗?我添加了初始化,然后您的代码是同一件事为什么会发生这种情况?@HogRider您能给我看一下您的在线演示吗?如果没有,那么似乎很难发布找出问题所在。
    $.ajax({
    type: 'POST',
    url: '../include/country.php',
    dataType : "json",
    data: {
        continentid: id
    },
    success: function(data) {
  data=  JSON.parse(data);
      data.each(key,value)  {

           console.log("PAIR " + i + ": " + data[key].sysid);
           console.log("PAIR " + i + ": " + data[key].name);
       }
    }
});
success: function(data) {
   $(data).each(function(i,v){
       console.log("PAIR " + i + ": " + v.sysid);
       console.log("PAIR " + i + ": " + v.name);
   });
}
$.ajax({
    type: 'POST',
    url: '../include/country.php',
    dataType : "json",
    data: {
        continentid: id
    },
    success: function(data) {
  data=  JSON.parse(data);
      data.each(key,value)  {

           console.log("PAIR " + i + ": " + value.sysid);
           console.log("PAIR " + i + ": " + value.name);
       }
    }
});