显示单个JSON数据值的问题

时间:2011-10-18 02:11:48

标签: jquery json

在我的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

有人可以告诉我我错过了什么吗?

感谢
克里斯

3 个答案:

答案 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"] 

再次感谢!!