IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Mettre un tableau dans une donnée json


Sujet :

jQuery

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 107
    Points : 73
    Points
    73
    Par défaut Mettre un tableau dans une donnée json
    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 :

    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 !");
    				}
    			}
    		);
    	}
    });
    le script php "found_com_and_greff.php" qui traite la requête et renvoi les données json :

    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.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 107
    Points : 73
    Points
    73
    Par défaut
    Je viens de m'apercevoir que tout fonctionne si le tableau à renvoyer est un tableau normal (à une dimension).
    Mon tableau est un tableau à deux dimensions (c'est un jeu de résultat mysql) et dans ce cas seulement mes scripts ne fonctionne pas.

    Est-ce que cela aurait un rapport avec l'option de profondeur récursive de json_encode ? si oui comment l'utiliser ? je trouve plein de site qui dise simplement que cette option est possible et qu'elle peut valoir 128 ou 512 mais il ne disent pas à quoi elle sert... Je me suis dis que cela serait peut-être en relation avec la profondeur des données et donc d'un éventuel tableau que l'on souhaiterai transmettre... j'ai juste ou pas ?

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    regarde dans les option de json_encode coté php ..

Discussions similaires

  1. comment mettre un tableau dans une boucle et sur la meme page
    Par pikkolina dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/05/2009, 19h21
  2. Réponses: 5
    Dernier message: 09/06/2008, 08h57
  3. Mettre un tableau dans une Info bulle
    Par 2michel dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/10/2007, 10h31
  4. Mettre un tableau dans une DataGrid
    Par Fred677 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 06/07/2007, 12h02
  5. [MySQL] mettre un tableau dans une table mysql
    Par lodan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/11/2006, 23h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo