php - Javascript eval() doesn't work as expected -
i'm fetching data php function in json format.
var xhreq = new xmlhttprequest(); xhreq.open("get", "http://myserver/getjson", false); xhreq.send(null); var serverresponse = xhreq; var jsondata=eval("("+serverresponse.responsetext+")") //retrieve result javascript object images=""; for(var i=0; i<jsondata.length;i++) { images+=" ['"+jsondata[i].title+"','"+imagesroot+"121a.png"+"']"; if(i<jsondata.length-1) images+=","; } im getting data in following format.
['title 1','http://site.com/images/121a.png'], ['title 2','http://site.com/images/121a.png'], ['title 3','http://site.com/images/121a.png'], ['title 4','http://site.com/images/121a.png'] finally when im assigning data array using eval()
var tinymceimagelist = new array(eval(images)); it show last element of array ['title 4','http://site.com/images/121a.png'].
i want every element of array assigned.
a simple solution be
var tinymceimagelist = eval('['+serverresponse.responsetext+']'); or
var tinymceimagelist = json.parse( '['+serverresponse.responsetext.replace(/'/g, '"')+']' ); but better solution generate json adding missing [ , ] , using proper quotes, allow use json.parse directly. note php comes in standard tools generate json.
Comments
Post a Comment