【发布时间】:2013-01-29 19:04:20
【问题描述】:
为什么我不能使用 data[0].id 返回 id?
$(document).ready(function(){
$.ajax({
type: 'POST',
dataType: "json",
url: '<?php echo matry::base_to('tests/map_it');?>',
success: function (data)
{
alert(data[0])
$('#alerts').html(data);
data[0].id
}
});
});
这是返回的警报。
{"id":19385,"first":"RLY","last":"MAZI",
"trainer_address1":"19 NE 13H CRT",
"trainer_address2":null,"CITY":"MII","STATE":"AL",
"trainer_zip":"33333","trainer_phone":"(721)222-4444","trainer_fax":null,
"trainer_cell":"(213)213- 2133","website_trainer_id":115,"trainer_email":"MO@gmail.COM",
"trainer_group":"","inactive":null}
任何帮助将不胜感激。
编辑 这是返回该 json 的 php:
$mapit = sql::results("Select * from event.ACS.trainer where inactive is null or inactive=0");
foreach ($mapit as $row)
{
$return[] = json_encode($row, JSON_FORCE_OBJECT);
}
echo json_encode($return);
我必须遍历并编码每一行,否则,ajax 函数不会认为有返回的 json(并且我的数据变量为空)
【问题讨论】:
-
你能发布你的生成 json 的 php 吗?如果您的警报确实包含它,那么您就是双重 json 编码。
-
您发布的 JSON 是显示在警报框中(来自
alert()调用)还是#alert元素的内容? -
你好,我知道,我尝试提醒 data[0].id 并且我得到未定义(我刚刚提醒提醒数据 [0] 以验证那里有值。
-
看起来函数中的数据参数是单个对象而不是数组。您是否尝试仅引用数据对象而不是 data[0]?
-
您应该使用
console.log(data)而不是alert(data)。然后使用您的浏览器开发工具,您可以检查返回的实际 JSON 对象。