Bonjour ,
j'ai un petit probleme :
j'ai une liste déroulante lié qui fonctionne bien c'est a dire que dans le premier champ je choisi la marque du wehicule ( peugeot ) et le 2 eme champ m'affiche des choix possible ( 208 , 308 etc... ) par contre quand au moment d'enregistrer le formulaire dans la base sql il m'enregiste les valeur dans les champ constructeur et model mais moi j'aimerais qu'il enregistre dans la base peugeot et 208 .
voici le bout de code :
le 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 <!DOCTYPE html> <html> <head> <title>Alimenter une liste de départements selon la région sélectionnée avec jQuery et MySQL</title> <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head> <link rel="stylesheet" href="css/styles.css" /> <script src="jquery.js"></script> <script src="liste.js"></script> </head> <body> <h2>Alimenter une liste de départements selon la région sélectionnée avec jQuery et MySQL</h2> <form> <select id="regions" name="regions"> <option value="">-- Régions --</option> </select> <select id="departements" name="departements"> <option value="">-- Départements--</option> </select> </form> </body> </html>
fonctionaja.php
le liste.js
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 <?php 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 constructeurs 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 models WHERE id_region = ". $id ." ORDER BY nom"; } // connexion à la base de données try { $bdd = new PDO('mysql:host=localhost;dbname=france', 'celia', ''); } catch(Exception $e) { exit('Impossible de se connecter à la base de données.'); } // 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); } ?>
Code javascript : 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 $(document).ready(function() { var $regions = $('#regions'); var $departements = $('#departements'); // chargement des régions $.ajax({ url: 'fonctionajax.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: 'fonctionajax.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>'); }); } }); } }); });
Partager