Reputation: 785
I have used ajax in the code which works perfectly and give me json or array which ever I want as an output. the code I have used is,
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","http://map_ajax_control.php",false);
xmlhttp.send();
var test = xmlhttp.responseText;
alert(test);
This test variable gives me json/array.
I want to get the data which I received in the test variable in the JavaScript array.
The question is, how can I decode json data in javascript array? I have used the code as,
var output = new Array();
output = json_decode(xmlhttp.responseText);
but this code is not giving me any output.
How can I do this two things?
Upvotes: 22
Views: 90401
Reputation: 18290
Try this:
var arr = xmlhttp.responseText.Split(',');
If it does not solve your problem then in your php code, use simple json_encode(your array);
and on javascript, use myData= eval("(" + xmlHttp.responseText + ")");
.
I suggest you to follow this approach:
Encode the data you want to send by using a PHP binding for JSON at the server and decode the same using Javascript library for JSON. as:
var myObject = eval('(' + myJSONtext + ')');
or
var myObject = JSON.parse(myJSONtext, reviver);
Note: Include json2 javascript file to your solution..
Problem with storing values in Array from php to AJAX
Upvotes: 17
Reputation: 28995
json is nothing but javascript object notation. You just need to parse it as suggested by Sudhir. You can also use jQuery.parseJSON for it.
And to do ajax, I strongly suggest you to use some library, preferably jQuery.
http://api.jquery.com/jQuery.ajax/
Upvotes: 2
Reputation: 100175
Most browsers support JSON.parse(). Its usage is simple:
obj = JSON.parse(xmlhttp.responseText);
alert(obj.length);
For the browsers that don't you can implement it using json2.js.
Upvotes: 32