Page 1 sur 1

Remplir une liste déroulante en utilisant AJAX et PHP

Posté : 29 janv. 2015, 12:52
par alfred5
Bonjour;
j'ai tombé dans une situation dont j'ai pas pu détecté le problème.
j'ai 2 listes déroulantes remplies manuellement et je voudrais remplir la 3 eme dynamiquement en utilisant AJAX et PHP.
Bon; pour ce faire; j'ai 2 fichier index.php et traitement.php
index.php:

Code : Tout sélectionner

<script type="text/javascript"> $(document).ready(function(){ $("#charger").click(function(){ var fil =$("#filiere").val(); var sem=$("#semestre").val(); $("#mod").empty(); $("#mod").append('<option value="">Choisir une matière</option>'); $.ajax({ url: 'traitement.php', data: 'f=' + fil + '&s=' + sem, dataType: 'json', // on veut un retour JSON success: function(json) { $.each(json, function(index, value) { // pour chaque noeud JSON // on ajoute l option dans la liste $("#mod").append('<option value="'+ index +'">'+ value +'</option>'); }); } }); //data : 'email=' + email + '&contenu=' + contenu_mail, }); }); </script>
j'ai pas inclue la partie formulaire; mais il y a aucun problème à ce niveau
traitement.php:

Code : Tout sélectionner

<?php try { $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); } catch(Exception $e) { exit('Impossible de se connecter à la base de données.'); } $json = array(); if(isset($_GET['f']) && isset($_GET['s'])) { // requête qui récupère les localités un $requete = "SELECT matiere FROM table1 WHERE filiere= '".$_GET['f']."' AND semestre ='".$_GET['s']."' GROUP BY matiere ORDER BY id"; // exécution de la requête $resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo())); // Création de la liste while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) { // je remplis un tableau et mettant l'id en index $json[$donnees["module"]][] = utf8_encode($donnees["module"]); } //} // envoi du résultat au success echo json_encode($json); } ?>
le problème est le suivant:
Lorsque je clique sur le lien qui lance le traitement (lien dont l'id est "charger") et que je choisi successivement "MG" comme filière et "1" comme semestre...j'obtiendrai le résultat avec succès mais si je change le semestre en "2"; j'obtiendrai rien (que la première oprion par defaut: "Choisir une matière").
voici une capture de la tabble MYSQL:
table.png.
Merci d'avance de m'aider

Re: Remplir une liste déroulante en utilisant AJAX et PHP

Posté : 29 janv. 2015, 13:40
par tof73
ouvre la console web de ton navigateur pour voir quelle url est appelée quand tu manipules tes listes, et vérifies le json retourné.

Re: Remplir une liste déroulante en utilisant AJAX et PHP

Posté : 29 janv. 2015, 14:07
par Invité
Bonjour tof73;
la console m'affiche l'erreur suivante :
tof73
Uncaught TypeError: object is not a function onclick

Re: Remplir une liste déroulante en utilisant AJAX et PHP

Posté : 29 janv. 2015, 15:26
par Invité
Rebonjour;
quand je choisi "2" comme semestre; la console me retourne "null" comme premier index du tableau JSON :
null ["Gestion d’entreprise"]
Comment je pourrai résoudre ce problème?