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

AJAX Discussion :

Récupérer un tableau PHP json dans un select


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut Récupérer un tableau PHP json dans un select
    Bonjour à tous,

    Ma question concerne la communication entre PHP et Jquery via Ajax au sein de l'éditeur Tiny Mce mais je n'ai pas trouvé le sous forum approprié.
    Mon tableau PHP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $data[] = array('text' => $titre, 'value' =>  $reponse, 'id' => $id);
    echo json_encode($data);
    Côté JS (pour alimenter les options d'une listBox):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    editor.addButton('listeReponses', {
     type: 'listbox',
     text: 'Réponses automatiques',
     onselect: function (e) {
    	editor.insertContent(this.value());
     
    },
    values: affiche_reponse_auto(), //fonction JS qui récupère le Json PHP
    });
    Tout fonctionne très bien, ma liste déroulante affiche bien les options ('text' dans le tableau PHP) et au clic, insère bien la donnée 'value' dans le textarea.
    Donc ma question est: comment récupérer le 'id', 3ème paramètre du tableau PHP ?
    Je sèche...
    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    Montrez-nous le code de la fonction "affiche_reponse_auto", cela pourra peut-être nous aider.
    Que souhaitez-vous faire avec la valeur qui est dans "id" ?

  3. #3
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Bonsoir,

    la fonction:

    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
     
    			function affiche_reponse_auto(){
    				var rep = "";
    				$.ajax({
    				   type:"POST",
    				   async: false,
    				   url:  "xhr_reponse_auto.php",
    				   datatype: "json",
    				   success: function(mydata){
    					 if(mydata){
    						rep = JSON.parse(mydata);
    					 }
    				   }
    				 });
    				 return rep;
    			}
    Je veux récupérer l'id pour remplir un champ hidden du formulaire.
    Merci.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    tu n'as pas besoin ce cette ligne rep = JSON.parse(mydata) attendu que le retour spécifié via datatype: "json" fait que mydata est utilisable directement.

    Fais un console.log( mydata) pour voir ce dont tu disposes.

  5. #5
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Bonjour,

    Lorsque je fais un log j'obtiens toutes les données du tableau issu de la BDD, à savoir:

    [{"text":"Titre de ma réponse 1","value":"Ma réponse1","id":"1"},{etc...]
    Et donc le "text" représente les options du select, et, lorsque j'en sélectionne un alors la donnée contenue dans "value" s'insère dans le textarea.
    De la même manière je voudrais que l'ID correspondant soit inséré dans un hidden du formulaire...

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    J'ai fini par trouver comment faire. Et ce n'est pas grâce à la documentation qui ne parle même pas du "onselect" donc j'ai regardé le contenu des variables avec la console de développement.

    Finalement, quand vous êtes dans "onselect", vous pouvez récupérer la valeur de "id" dans :

  7. #7
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Bonjour Mathieu et mille mercis !!!!
    La syntaxe exacte est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    e["control"]["settings"]["id"]
    Mais tu m'as grandement mis sur la voie ! Déjà en plaçant le console.log dans le onSelect et pas dans la fonction de récup des données (où, forcément je les ai toutes - quel bourrin je fais, des fois...) et je n'ai eu ensuite qu'à lire le verbiage de la console au click sur le select.

    Je te souhaite une bonne journée et te remercie encore d'avoir pris du temps pour te pencher sur ma question.
    Renaud.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Récupérer mon tableau PHP en JavaScript
    Par yohann26 dans le forum Langage
    Réponses: 7
    Dernier message: 21/11/2011, 18h21
  2. Autocomplete : récupérer un tableau php json_encode
    Par renaud26 dans le forum jQuery
    Réponses: 5
    Dernier message: 26/05/2011, 08h37
  3. Réponses: 2
    Dernier message: 10/12/2010, 07h58
  4. comment récupérer un nom de table dans un select
    Par thor76160 dans le forum MySQL
    Réponses: 2
    Dernier message: 24/03/2010, 14h17
  5. récupérer un tableau PHP dans une fonction javascript
    Par aztec dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/05/2007, 22h11

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