Tim*_*ski 1 php ajax jquery json
为什么我不能使用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
}
});
});
Run Code Online (Sandbox Code Playgroud)
这是回归的警报.
{"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}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
编辑这是返回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);
Run Code Online (Sandbox Code Playgroud)
我必须遍历并编码每一行,否则,ajax函数不会认为返回了json(并且我的数据var为空)
你的真正问题在于你的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);
Run Code Online (Sandbox Code Playgroud)
您对数据进行了两次json_encoding,这导致内部JSON在返回到Javascript时被视为JSON格式的字符串.
你应该这样做:
$mapit = sql::results("Select * from event.ACS.trainer where inactive is null or inactive=0");
foreach ($mapit as $row)
{
$return[] = $row;
}
echo json_encode($return);
Run Code Online (Sandbox Code Playgroud)
注意我已经删除了最里面的json_encode.
现在,您不需要在Javascript中使用.parseJSON()调用.该解决方案将比公认的解决方案更有效,后者没有解决实际问题.
它会更有效率,因为
因此,您消除了2个不必要的操作,以及许多浪费的循环(因为这些操作包含在循环中).
| 归档时间: |
|
| 查看次数: |
1556 次 |
| 最近记录: |