Reputation: 85
I am unable to retrieve values from json object.The json data as coming like this when observe from firebug :
[{"PROJECT_ID":"CASEENO"},{"PROJECT_ID":"DARKROOM-2"}]
This is my ajax code:
$.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) is giving [object Object].
I tried like this data.PROJECT_ID, data[PROJECT_ID],data[i].PROJECT_ID
but project id value is not displaying in select tag.
How can I retrieve project id from for loop?
Upvotes: 0
Views: 1230
Reputation: 3082
Change your statement from
$("#projid").append("<option value=data[i].PROJECT_ID>data[i].PROJECT_ID</option>");
to
$("#projid").append("<option value="+data[i].PROJECT_ID+">"+data[i].PROJECT_ID+"</option>");
Upvotes: 1
Reputation: 817208
If alert(data)
gives [object Object]
, then data
is not an array. It should output [object Object],[object Object]
.
I recommend to use console.log(data)
to get a better idea of what data
actually is and to examine its structure. This question might help you too: Access / process (nested) objects, arrays or JSON.
Assuming data
is indeed an array, to use its values in the HTML string you have to use string concatenation:
$('#projid').append('<option value="' + data[i].PROJECT_ID + '">' + data[i].PROJECT_ID + '</option>');
or create the element differently:
$('<option />', {
value: data[i].PROJECT_ID,
text: data[i].PROJECT_ID
}).appendTo('#projid');
JavaScript is not interpolating strings like PHP does.
Upvotes: 1