在我的php文件中我有
$data = array();
while ($row = mysql_fetch_array($result, true))
{$data[] = $row;};
echo json_encode($data);
它生成JSON数组:
[
{
"record_id": "4",
"eq_type_id": "999",
"scidiv_id_tag": "AKINS04",
"date_last_updated": "2011-07-11 14:41:58",
"description": "Optics Table D",
"eq_type_desc": "Other Equipment Type"
}
]
在我的JQUERY脚本中:
$.ajax(
{
type: "GET",
//dataType: "json",
url: "../scidiv/php/editData.php",
data: "recid=" + scidivtag,
success: function(data)
{
$('#output1').html(data);
$('#output').html("<b>id: </b>"+ data[0].record_id + "<b> name: </b>" +data[1].eq_type_id);
}
});
$('#output1').html(data); displays the above array on my web page....
但两者
$('#output').html("Record Id: "+ data.record_id+"Eq Type ID: "+ data.eq_type_id);
的
$('#output').html("Record Id: "+ data[0].record_id+"Eq Type ID: "+ data[1].eq_type_id);
给我
id:未定义的名称:undefined
有人可以告诉我我错过了什么吗?
感谢
克里斯
答案 0 :(得分:1)
您是否有机会在Firefox或Chrome中开发(IE糟透了)?如果是这样,请使用console.log输出从服务器端返回的数据。可能是jQuery没有将您的响应解释为JSON,因此无法解析它。提供的响应内容类型是什么?确保它是application / json。或者,或者您可以通过将AJType请求的dataType设置为“json”来强制jQuery将其解析为JSON。请参阅http://api.jquery.com/jQuery.ajax。
答案 1 :(得分:0)
摆脱包裹它的方形括号。你有一个只有一个成员(地图)的“数组”。
如果没有方括号,data.eqType_id应该可以正常工作。
使用大括号,您必须首先查看数组的成员0:data [0] .eqType_id。但额外的嵌套级别会增加一个不必要的层,除非你要实际传递一组地图。
答案 2 :(得分:0)
感谢所有的帮助和建议......
我通过从头开始重写我的PHP脚本解决了这个问题...... 我做的主要是将查询结果作为一个简单的数组,因为我只得到一行数据查询:
$jqdata = mysql_fetch_row($result,);
echo json_encode($jqdata);
所以我的json看起来像:
["7","1","999","AKINS01","2011-07-11 14:39:22","Optics Table A","Other Equipment Type"]
再次感谢!!