Requete ajax et array, possible?

une requete ajax pour update deux div différentes

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

Pour éviter de faire plusieurs requetes ajax, j'ai pensé pouvoir récupérer le résultat et de le découper avec split()

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
function readData(sData) 
{
    // Le résultat de l'AJAX
    document.getElementById("text_data").innerHTML=sData;
    var sDataArray=new Array;
    sDataArray  = sData.split('/');
    document.getElementById("fda_data").innerHTML=sData[0];
    document.getElementById("fdp_data").innerHTML=sData[1];

}

Mais dans sData[0], j'ai la 1ere lettre du résultat de la requete. Et dans sData[1], j'ai la 2ème lettre. Bizarre? où j'ai fais une erreur quelque part?

Édité par Coyote

+0 -0

Cette réponse a aidé l'auteur du sujet

Salut :)

+1 pour victor, tu n'utilise pas la bonne variable, [n] sur une chaîne de caractère renvoi le caractère à la position n dans ta chaîne !

Après si j'ai bien compris tu veux récupérer plusieurs données en une seule requête.

Pour cela tu pourrais utiliser du Json qui permet de transformer un tableau (dans ton cas) en une chaîne de caractères. Tu pourra alors récupérer tes données sous cette forme puis retransformer ta chaîne en tableau avec du JavaScript.

Ptit exemple

Il me semble que tu utilise du PHP, du coup côté serveur tu affiche le résultat de json_encode() qui est une chaîne de caractères

1
2
3
<?php    
  $jsonData = json_encode($ton_tableau); // $jsonData est une chaîne de caractères au format json représentant ton tableau
?>

Puis côté client quand tu récupère le résultat de ta requête AJAX tu utilise JSON.parse() pour récupérer un objet JS.

1
2
3
4
var dataArray = JSON.parse(sData); // dataArray est un objet JS correspondant au tableau php

document.getElementById("fda_data").innerHTML=dataArray[0];
document.getElementById("fdp_data").innerHTML=dataArray[1];

Quelques liens :

Voili voilou ;)

Dev' web en alternance | LP CRSPM Laval

+0 -0
Auteur du sujet

L.7 et l.8, tu voulais pas mettre sDataArray plutôt ?

victor

Ah ben… oui ^^ j'ai honte lol

@luuka: je vais voir tout ça :) ça à l'air plus simple (une seule requete mysql du coup) et pas d'embrouille avec le délimiteur pour faire un array coté client :) Thx

PS: (aprés essai) merci pour l'astuce luuka, du coup je peux récupérer toute la ligne d'un coup ^^

Édité par alex4gous

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte