user1638026
user1638026

Reputation: 85

Getting value from json object

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

Answers (2)

Pokuri
Pokuri

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

Felix Kling
Felix Kling

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

Related Questions