Bonjour à toutes et à tous,
Un formulaire contient la liste des regions et une autre liste qui depend de la sélection de la première et qui contient les départements
Voici le formulaire :
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 <?php ?> <script src="jquery.js"></script> <script> $(document).ready(function() { var $regions = $('#regions'); var $departements = $('#departements'); // chargement des régions $.ajax({ url: 'http://127.0.0.1/php/france.php', data: 'go', // on envoie $_GET['go'] 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 $regions.append('<option value="'+ index +'">'+ value +'</option>'); }); } }); // à la sélection d une région dans la liste $regions.on('change', function() { var val = $(this).val(); // on récupère la valeur de la région if(val != '') { $departements.empty(); // on vide la liste des départements $.ajax({ url: 'http://127.0.0.1/php/france.php', data: 'id_region='+ val, // on envoie $_GET['id_region'] dataType: 'json', success: function(json) { $.each(json, function(index, value) { $departements.append('<option value="'+ index +'">'+ value +'</option>'); }); } }); } }); }); </script> </head> <body> <form action="http://127.0.0.1/php/traitement.php" method="GET"> <select id="regions" name="regions"> <option value="">-- Regions --</option> </select> <select id="departements" name="departements"> <option value="">-- Departements--</option> </select> <br/> <br/> <br/> <input type="submit" value="Valider" name="upload" id="upload"/></span> </form> </body> </html>
voici la page de connection à la base de données
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
25
26
27
28
29
30
31
32
33
34
35
36 <?php // connexion à la base de données try { $bdd = new PDO('mysql:host=localhost;dbname=france', 'root', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); } catch(Exception $e) { exit('Impossible de se connecter à la base de données.'); } if(isset($_GET['go']) || isset($_GET['id_region'])) { $json = array(); if(isset($_GET['go'])) { // requête qui récupère les régions $requete = "SELECT id, nom FROM regions ORDER BY nom"; } else if(isset($_GET['id_region'])) { $id = htmlentities(intval($_GET['id_region'])); // requête qui récupère les départements selon la région $requete = "SELECT id, nom FROM departements WHERE id_region = ". $id ." ORDER BY nom"; } // exécution de la requête $resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo())); // résultats while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) { // je remplis un tableau et mettant l'id en index (que ce soit pour les régions ou les départements) $json[$donnees['id']][] = utf8_encode($donnees['nom']); } // envoi du résultat au success echo json_encode($json); } ?>
et pour finir la page traitement :
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
25
26
27
28
29 <?php ?> <script type="text/javascript" src="ckeditor/ckeditor.js"></script> <script type="text/javascript" src="/dept_xhr.js" charset="iso_8859-1"></script> <head> <script src="jquery.js"></script> <script> </script> </head> <body> <?php echo "id region :"; if (isset($_GET['id_region'])){ echo $_GET['id_region']; } echo "<br/>"; echo "<br/>"; echo "id departement :"; if (isset($_GET['id_departement'])){ echo $_GET['id_departement']; } ?> </body> </html>
Lors de l'envois les valeurs passent par l'URL je les vois mais elles ne s'affichent pas dans la page de traitement . A votre avis que faut'il faire ?
Merci infiniment pour votre aide
Partager