Comment faire des objects jquery d’un tableau à partir d’une réponse php d’un appel ajax

Voici ma variable javascript my , je voulais l’obtenir à partir d’un fichier php.

À l’intérieur du selectAnnotation.php je ne fais que selectAnnotation.php faire l’écho

 echo "{ src : 'http://192.168.1.58/annotate/drive/image/test.jpg', text : 'Suresh and Gopinath....', shapes : [{ type : 'rect', geometry : { x : 0.1825726141078838, y: 0.23756906077348067, width : 0.11602209944751381, height: 0.11618257261410789 } }] }"; exit; 

Comme, je voulais l’obtenir à partir d’un fichier php. Pour y parvenir j’ai fait un appel en ajax

  var my = { src : 'http://192.168.1.58/annotate/drive/image/', text : 'Suresh and Gopinath....', shapes : [{ type : 'rect', geometry : { x : 0.1825726141078838, y: 0.23756906077348067, width : 0.11602209944751381, height: 0.11618257261410789 } }] } console.log(my); console.log('__________'); $.post("masterCall/selectAnnotation.php", { url: 'http://192.168.1.58/annotate/drive/image/' }, function(data,status){ console.log(data); console.log('__________'); //anno.addAnnotation(data); }); 

Ce faisant, je peux voir la différence en console ..

Voici l’écran de ce qui se passe je fais le journal de la console de console.log(my) et console.log(data)

entrez la description de l'image ici

Alors, comment puis-je faire la bonne réponse qui apparaît comme à l’intérieur du console.log(my)

Remarque :

Le var my est le format correct dont j’ai besoin, je voulais obtenir le même format publié à partir d’un fichier php et le récupérer en format jQuery.

Mettre à jour :

Quand j’essaie de faire

 $v = "{ src : 'http://192.168.1.58/annotate/drive/image/test.jpg', text : 'Suresh and Gopinath....', shapes : [{ type : 'rect', geometry : { x : 0.1825726141078838, y: 0.23756906077348067, width : 0.11602209944751381, height: 0.11618257261410789 } }] }"; echo json_encode($v); 

et en jquery

 function(data,status){ var obj = jQuery.parseJSON( data); console.log(obj); }); 

je me fais presque comme le précédent ..

Essayez de construire comme ça:

 $Result = $Connection->query($Query); $result=array(); $i=0; while($row = $Result->fetch_assoc()){ $result[$i]['src']=$row['src']; $result[$i]['text']=$row['text']; $result[$i]['shapes'][]=array('type'=>'rect','geometry'=>array('x' => $row['x'], 'y'=> $row['y'], 'width' => $row['width'], 'height'=>$row['height']) ); $i++; } echo json_encode($result); 

// réponse javascript après succès …

 data=JSON.parse(data); for(var i=0;i 

essayez d’utiliser json_encode et json_decode pour transférer vos données. Dans js JSON.parse

C’est ma première réponse sur SO.

Je suppose que la bonne façon de le faire serait d’utiliser eval (). Cependant, il est plutôt recommandé d’utiliser json_encode et json_decode comme Ninjava l’a suggéré.