Bonour,
j'ai créer deux listes qui sont alimenter et lié.
Quand je choisi le code postal la 2eme s'alimente mais pas tout le temps je ne comprend pas pourquoi ?
C'est a dire certains cp affiche bien leur villes toujours les memes mais d'autre choix sur certains code postal ,'alimente jamais la liste ville.
Le sql retourne pourtant bien un resultat pourtant.
liste.php
Code html : 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 <html> <head> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script> <script type="text/javascript"> // JavaScript Document $(document).ready(function() { var $code_postal = $('#code_postal'); var $commune = $('#commune'); // chargement de la liste de localité un $.ajax({ url: 'test.php', data: 'go', // on envoie $_GET['go'] dataType: 'json', // on veut un retour JSON success: function(json) { $.each(json, function(value) { // pour chaque noeud JSON // on ajoute l option dans la liste $('#code_postal').append('<option value="'+ value +'">'+ value +'</option>'); }); } }); // à la sélection de la localité un dans la liste $code_postal.on('change', function() { var val = $(this).val(); // on récupère la valeur de la localité un if(val != '') { $commune.empty(); // on vide la liste de localité deux $commune.append('<option value="">Choisir la localité deux</option>'); $.ajax({ url: 'test.php', data: 'code_postal='+ val, // on envoie $_GET['code_postal'] dataType: 'json', success: function(json) { $.each(json, function(value) { $commune.append('<option value="'+ value +'">'+ value +'</option>'); }); } }); } else { $commune.empty(); $commune.append('<option value="">Choisir la localité deux</option>'); $nomservicepublic.empty(); // on vide la liste de localité deux } }); }); </script> <script type='text/javascript'> $(".commune").change(function() { idcityhidden = $("#commune").value(); $.post("liste2.php", {"commune":idcityhidden}); } </script> </head> <body> <form id="" name="" type="post" action=""> <select id="code_postal" name="code_postal"> <option value="">Choisir la localité un</option> </select> <select id="commune" name="commune"> <option value="">Choisir la localité deux</option> </select> <input type="text" name="city-hidden" id="city-hidden" onchange='NomServicePublic()'> <input type="submit" value="envoyer"> </form> </body></html>
test.php
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
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 <?php // Vérification des paramètres d'accès au fichier liste.php if(isset($_GET['go']) || isset($_GET['code_postal']) || isset($_GET['commune'])) { // connexion à la base de données try { } catch(Exception $e) { exit('Impossible de se connecter à la base de données.'); } $json = array(); if(isset($_GET['go'])) { // requête qui récupère les localités un $requete = "SELECT distinct(code_postal) FROM servicepublic ORDER BY code_postal ASC"; // 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["code_postal"]][] = $donnees["code_postal"]; } } elseif(isset($_GET['code_postal'])) { // requête qui récupère les localités un $requete = "SELECT distinct(commune) FROM servicepublic WHERE code_postal = '".$_GET['code_postal']."' ORDER BY commune ASC"; // 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["commune"]][] = $donnees["commune"]; } } elseif(isset($_GET['commune'])) { // requête qui récupère les localités un $requete = "SELECT distinct(nom_service_public) FROM servicepublic WHERE commune = '".$_GET['commune']."' ORDER BY nom_service_public ASC"; // 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["nom_service_public"]][] = $donnees["nom_service_public"]; } } // envoi du résultat au success echo json_encode($json); } ?>
merci pour votre aide.
Partager