我无法从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值没有显示在select标签中。
如何从for循环中检索项目ID?
答案 0 :(得分:1)
如果alert(data)
提供[object Object]
,则data
不是数组。它应该输出[object Object],[object Object]
。
我建议使用console.log(data)
来更好地了解data
实际上是什么,并检查其结构。这个问题也可能对您有所帮助:Access / process (nested) objects, arrays or 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那样的字符串。
答案 1 :(得分: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>");