json没有值,但print_r有值php pdo jquery ajax
如果我这样做 印刷(国家); echo json_编码($country) 第二个元素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 (
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);
}
}
});