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:
j'ai pas inclue la partie formulaire; mais il y a aucun problème à ce niveau
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
20
21
22
23 <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>
traitement.php:
le problème est le suivant:
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
20
21
22
23
24 <?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); } ?>
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:
.
Merci d'avance de m'aider
Partager