为什么JSON结果在此JavaScript中“未定义”

时间:2011-08-20 04:19:07

标签: javascript jquery json

我遇到了一些让我的JS工作正常的问题。我试图从下拉列表中选择一个选项,然后调用此函数。正确调用该函数(类型设置为'truck',id设置为5)。我想然后使用返回的数据来填充几个字段。我添加到测试中的alert()给了我“undefined”。

这是我的JS:

 function getDueDates(type, id) {
     $.getJSON("loadVehicle.php",
     {
         id: id,
         type: type
     },
         function(data) {            
            alert( "TEST: " + data.year);
             $("#inspection_due").val(data.inspection_due);
             $("#short_due").val(data.short_due);
             $("#full_due").val(data.full_due);
         }
 )};

当我手动检查loadVehicle页面时(id = 5,键入= truck)我得到:

[{"truck_id":"5","status":"A","truck_number":"21","year":"1999","make":"Freightliner","model":"Classic","engine":"Detroit","vin_number":"1FUPCSZB2XPA16977","transmission_number":"","tire_size":"","inspection_due":"2009-04-30","short_due":"0000-00-00","full_due":"0000-00-00","comments":"Caf Inc Truck","web_id":"b963940bfd96528f7fd57c08628221f0","last_update":"2009-03-09 16:26:28"}]

但是在页面中警报出现“TEST:undefined”

2 个答案:

答案 0 :(得分:11)

您需要data[0].year,因为您正在获取包含单个对象的数组

答案 1 :(得分:1)

尝试数据[0]。年。

看起来你的loadVehicle.php正在返回一个对象数组而不仅仅是一个对象。