J’ai récemment posté une autre question qui a immédiatement amené les utilisateurs à me diriger dans la bonne direction.
$.ajax({ type: 'POST', url: './', data: 'token=' + token + '&re=8', cache: false, timeout: 5000, success: function(html){ auth(html); var JSON_array = eval(html); alert(JSON_array[0].username); } });
cela retourne les données correctement mais je veux effectuer une sorte de ‘foreach’. le tableau contient des données sur plusieurs messages instantanés entrants et sortants. Donc, si un utilisateur parle à plus d’une personne à la fois, j’ai besoin de passer en boucle. la structure du tableau est la suivante.
Array ( [0] => Array ( [username] => Emmalene [contents] => - ACTwebDesigns
- helllllllo
- ACTwebDesigns
- sds
- ACTwebDesigns
- Sponge
- dick
- ACTwebDesigns
- arghh
) )
Toute aide est très appreciée.
Puisque vous utilisez déjà jQuery, vous pouvez utiliser chaque fonction:
$.ajax({ type: 'POST', url: './', data: 'token=' + token + '&re=8', cache: false, timeout: 5000, success: function(html){ auth(html); var JSON_array = eval(html); $.each(JSON_array, function(index, data) { $('someelement').append(data.contents); }); } });
Au lieu d’évaluer le code HTML, vous pouvez même spécifier JSON comme type de retour …
L’itération est facile avec $.each
:
$.ajax({ type: "POST", data: ..., url: url, dataType: "json", success: function(data) { $.each(data, function(i, item){ // do something with every item in data // you can reference items in data via // data.fieldName }); } });
Mais une boucle for ... in
boucle n’est pas beaucoup plus difficile:
$.ajax({ ..., dataType: "json", success: function(data) { var fields = data.fieldName; var value; for (value in fields) { // do something with value } } });
Juste pour clarifier, comme j’ai lu de nombreux conseils et réponses utiles et que celui-ci a fonctionné pour moi:
$.ajax({ type: 'POST', url: './', data: 'token=' + token + '&re=8', cache: false, timeout: 5000, datatype: 'json', success: function(html){ auth(html); var JSON_array = eval(html); $.each(JSON_array, function(index, data) { var talk_to = JSON_array.username; var contents_to_update = JSON_array.contents; }); } });
ce qui a fait le travail:
1) utilisation de eval. 2) type de données: ‘json’ 3) utilisation de la fonction $ .each de jquery