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

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);
}
?>
le liste.js

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>');
					});
				}
			});
		}
	});
});