Bonjour,
Je souhaite transférer un tableau php via json et le récupérer avec jquery. ATTENTION : je ne veux pas que chaque élément du tableau devienne une donnée json, je veux que mon tableau tout entier soit retourné dans une donnée json unique.
Le but est de proposer des communes correspondant à un code postal entré par un utilisateur. Quand le code est entré un requête ajax est envoyée au serveur qui trouve dans une base les communes correspondantes.
Voilà les bouts de code qui me pose problème pour plus de clarté:
Mon appel ajax avec jquery :
le script php "found_com_and_greff.php" qui traite la requête et renvoi les données json :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 $("#code").on("keyup",function(){ if($("#code").val().length==5){ $.getJSON( "ajax/found_com_and_greff.php" , { "code_postal" : $("#code").val() } , function(data) { if(data['greffe_trouve']){ alert("greffe ok ! nombre de communes trouvées: "+data['liste_greffes'].length); }else{ alert("greffe pas trouve !"); } } ); } });
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 //Recupération de données $code_postal=trim($_REQUEST['code_postal']); $req_greffe=mysql_query("SELECT * FROM `communes` WHERE `commune_code_postal`='".$code_postal."'"); if(mysql_num_rows($req_greffe)>0){ $greffe_trouve=true; mysql_data_seek($req_greffe,0); $liste_greffes=mysql_fetch_assoc($req_greffe); //<=====JE CREE MON TABLEAU ASSOCIATIF ISSU DE MA REQUETE SQL $resultat=array( 'greffe_trouve'=>true, 'liste_greffes'=>$liste_greffes //<=====C'EST ICI QUE JE PENSE TRANSMETTRE MON TABLEAU ISSU DE MA REQUETE SQL ); }else{ $resultat=array( 'greffe_trouve'=>false ); } //envoi des résultat à la page print(json_encode($resultat));
Mon script php cherche dans une table les lignes qui correspondent à ma requête (dont le code postal correspond). Le jeu de résultat est mis dans un tableau et ce tableau je tente de le transmettre dans une donnée json pour ensuite le récupérer dans mon script javascript.
Tout fonctionne et l'alerte " alert("greffe ok ! nombre de communes trouvées: "+data['liste_greffes'].length); " se déclenche... Mais pas le nombre de communes trouvées. Un message dans la console javascript me dit que data['liste_greffes'] n'est pas défini et que la propriété length ne peut pas être lue.
j'en déduis donc que contrairement à mon attente data['liste_greffes'] ne contient pas mon tableau $liste_greffes généré par le php ou alors qu'il n'est pas correctement envoyé de mon script php vers mon script javascript.
J'ai bien cherché une solution sur le forum ou sur le net mais je ne trouve que des solutions pour transformer chaque élément d'un tableau en données json or moi je veux transmettre un tableau tout entier DANS une donnée json.
Si quelqu'un peut m'aider je le remercie par avance.
Partager