Requete ajax et array, possible?

une requete ajax pour update deux div différentes

Le problème exposé dans ce sujet a été résolu.

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?

+0 -0

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 ;)

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 ^^

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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