0

我无法从 json 对象中检索值。从 firebug 观察时,json 数据如下所示:

[{"PROJECT_ID":"CASEENO"},{"PROJECT_ID":"DARKROOM-2"}]

这是我的ajax代码:

$.ajax({
    type: "POST",
    url: "getdata.php",
    dataType: "json",
    data: { 'dataString': projectid }, cache:false,
    success: function(data)
             { 
                  alert(data);
                  for (var i = 0; i < data.length; i++)
                  {             
                     $("#projid").append("<option value=data[i].PROJECT_ID>data                  [i].PROJECT_ID</option>");
                   }   
             }
}); 

alert(data) 给出 [object Object]。我试过这样,data.PROJECT_ID, data[PROJECT_ID],data[i].PROJECT_ID但项目 ID 值未显示在选择标签中。如何从 for 循环中检索项目 ID?

4

2 回答 2

1

如果alert(data)[object Object],则data不是数组。它应该输出[object Object],[object Object].

我建议使用console.log(data)它来更好地了解data实际情况并检查其结构。这个问题也可能对您有所帮助:访问/处理(嵌套)对象、数组或 JSON

假设data确实是一个数组,要在 HTML 字符串中使用它的值,您必须使用字符串连接:

$('#projid').append('<option value="' + data[i].PROJECT_ID  + '">' + data[i].PROJECT_ID + '</option>');

或以不同的方式创建元素:

$('<option />', {
    value: data[i].PROJECT_ID,
    text: data[i].PROJECT_ID
}).appendTo('#projid');

JavaScript不像PHP 那样插入字符串。

于 2012-08-31T09:33:49.133 回答
1

将您的陈述从

 $("#projid").append("<option value=data[i].PROJECT_ID>data[i].PROJECT_ID</option>");

$("#projid").append("<option value="+data[i].PROJECT_ID+">"+data[i].PROJECT_ID+"</option>");
于 2012-08-31T09:34:35.573 回答