jQuery analyser/affichage des données json en php json_encode

Initiale .appel ajax en jquery:

$.ajax({                                      
 type: 'post',
 url: 'items_data.php',                  
 data: "id="+id,                                       
 dataType: 'json',                     
 success: function(data){     
  if(data){
   make_item_rows(data);
  }else{
   alert("oops nothing happened :(");
  }        
 } 
});     

Envoie une simple chaîne de caractères dans un fichier php qui ressemble à:

header('Content-type: application/json');
require_once('db.php');

if( isset($_POST['id'])){
 $id = $_POST['id'];
}else{
 echo "Danger Will Robinson Danger!";
}

$items_data = $pdo_db->query ("SELECT blah blah blah with $id...");
$result_array = $items_data->fetchAll();
echo json_encode($result_array);

Je suis en rattrapage de l' $result_array très bien et de le transmettre à une autre fonction. J'ai vérifié qu'il n'y a en effet de valeurs propres étant retourné comme je peux juste l'écho de suite sur ma page et il affiche quelque chose comme ce qui suit:

[{"item_id":"230","0":"230","other_id":"700"},{"item_id":"231","0":"231","other_id":"701"},{"item_id":"232","0":"232","other_id":"702"}]

J'ai de la difficulté à comprendre comment itérer les résultats afin que je puisse injecter des valeurs dans un tableau que j'ai dans mon code HTML. Voici ce que j'ai pour ma fonction:

function make_item_rows(result_array){  
 var string_buffer = "";
 $.each(jQuery.parseJSON(result_array), function(index, value){
  string_buffer += value.item_id; //adding many more eventually
  $(string_buffer).appendTo('#items_container');
  string_buffer = ""; //reset buffer after writing          
 });                    
}

J'ai aussi essayé de mettre une alerte sur le $.chaque fonction pour s'assurer qu'il était de tir 3 fois, qui c'était. Cependant pas de données vient de mon code. Ont essayé d'autres méthodes aussi bien avec pas de chance.

Mise à JOUR: j'ai modifié mon code pour inclure les parseJSON, pas de dés. A obtenu un jeton inattendu erreur dans mon fichier jquery (à droite lorsqu'il tente d'utiliser json native de l'analyseur). Essayé d'ajouter le json en-tête en vain, même erreur. la version jquery 1.9.1. Code comme il est maintenant devrait être reflété ci-dessus.

Aussi je voulais souligner quelque chose qui pourrait être très important. .appendTo() ne fonctionne pas pour cette solution. Seulement .append (). Je n'ai aucune idée pourquoi, selon la documentation de jQuery, il fonctionne.

OriginalL'auteur carter | 2013-03-31