Col*_*per 1 javascript php ajax json
对于第n个对象抓取版本感到抱歉,但我只是看不到它.
我正在从一个数据库返回一个JSON对象到我的Javascript,我在控制台中看到返回的对象(下面).但是,当我试图让孩子进入控制台的那一刻我得到了"undefined".我应该能够看到result.bills,或者result["bills"]只是为了确定我已经尝试过result[0].bills,等等都是未定义的.这看起来很基本,但我不明白为什么我不能做这个工作.
我的PHP(在db之后):
if ($result) {
$rows = array();
while($r = mysqli_fetch_assoc($result)) {
$rows[bills] = $r;
}
echo json_encode($rows);
} else {
echo "Unknown Error";
}
//all done
Run Code Online (Sandbox Code Playgroud)
我的AJAX:
$.ajax({
type: 'get',
url: 'GetBills.php',
success: function(result) {
var thebills = result.bills;
console.log(thebills);
},
error: function(xhr, desc, err) {
console.log(xhr);
console.log("Details: " + desc + "\nError:" + err);
}
});
Run Code Online (Sandbox Code Playgroud)
我回来了:
{
"bills": {
"ID": "3",
"State": "MD",
"Title": "Maryland Android Project Act (S.1196 H.2057)",
"HouseNum": "H 2057",
"SenateNum": "",
"Session": "189th"
}
}
Run Code Online (Sandbox Code Playgroud)
你得到的undefined是因为jQuery不知道它实际上正在接收JSON.如果您使用php文件发送JSON 标头,或者如果设置为'json' ,则会检测并自动解析.dataType
所以,目前你正在访问一个字符串:
var result = '{"bills":{"ID":"3","State":"MD","Title":"Maryland Android Project Act (S.1196 H.2057)","HouseNum":"H 2057","SenateNum":"","Session":"189th"}}'
Run Code Online (Sandbox Code Playgroud)
但是你试图访问STRING函数(具体bills是哪个undefined).
如果你选择不更改dataType或添加标题,你也可以做result = JSON.parse(result)同样的事情.
执行上述三个解决方案之一将为您提供您正在寻找的对象,并访问其子代:
//Javascript
result = JSON.parse(result);
//In Console
Object {bills: Object}
bills:
ObjectHouseNum: "H 2057"
ID: "3"
SenateNum: ""
Session: "189th"
State: "MD"
Title: "Maryland Android Project Act (S.1196 H.2057)"
__proto__: Object
__proto__: Object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
727 次 |
| 最近记录: |