我的数据来自PHP,如下所示:
auth0: Object
"client_id: "1234"
tables: Array[2]
0: Object
clients_avail: "demo"
1: Object
clients_avail: "4532t78"
编辑:这是实际的JSON:
{"auth":{"id":"bob"},"tables":[{"clients_avail":"demo"},{"clients_avail":"4532t78"}]}
以上检索如下:
$.ajax({
url: 'getit.php',
type: 'POST',
dataType: 'json',
data: {
id_token: my_token
},
success: function(data) {
$.each(full_data, function (data) {
$('#clients_avail').append("<option>" + data.tables.clients_avail + "</option>");
$('#my_id').text(data.auth.id);
}
});
这是未被发现的错误:
Uncaught TypeError: Cannot read property 'clients_avail' of undefined
我在这里缺少什么?
答案 0 :(得分:1)
问题是$ .each()中的参数;试着这样做。
success: function(data) {
$.each(data.tables[0], function (k, val) {
$('#clients_avail').append("<option>" + val.clients_avail + "</option>");
$('#my_id').text(data.auth.id);
}
我正如 skobaljic 告诉你的那样,你应该组织你的json或使用json_encode()输出你的数据。
答案 1 :(得分:1)
由于你有一个数组,你需要迭代
$.ajax({
url: 'getit.php',
type: 'POST',
dataType: 'json',
data: {
id_token: my_token
},
success: function (data) {
$.each(data.tables, function (data) {
$('#clients_avail').append("<option>" + data.clients_avail + "</option>");
})
$('#my_id').text(data.auth[0].id);
}
});
同样在你的情况下,auth
是一个对象数组,我认为这是不必要的,所以请尝试将您的回复设为{"auth":{"id":"bob"},"tables":[{"clients_avail":"demo"},{"clients_avail":"4532t78"}]}
,然后$('#my_id').text(data.auth.id);