Bonjour,
Alors, je vous explique, j'ai une liste de marques que je récupère dynamiquement dans un select. Jusque-là, pas très compliqué.
Cependant, j'aimerais remplir une seconde liste, de modèles cette fois-ci, et ce dynamiquement une fois que j'ai renseigné la première liste déroulante sans recharger la page.
Mais bien évidemment, ça ne marche pas
Voici mon code :
Un bout de mon formulaire :
Mon Javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <select id='marque_machine' style="width:165px;")<option></option> <option> <?php while ($ligne = $marque->fetch(PDO::FETCH_ASSOC)) { // on affiche les informations de l'enregistrement en cours echo '<option value="'.$ligne['NomMarque'].'">'.$ligne['NomMarque'].'</option>'; } ?> </option></select></p> <p><label style="width:80px;">Modèle :</label> <select type='text' id='modele_machine' style="width:190px;"></select></p>
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 $(function() { $('#marque_machine').change(function() { $('#modele_machine').empty() if($(this).val()) $.getJSON("modele_ordinateur.php",{m: $(this).val()}, function(liste_modele) { $.each(liste_modele,function(i,item) { var element = $("<option>"+item+"</option>") $('#modele_machine').append(element) }) }) } ) })
Ma fonction avec laquelle je pré rempli ma liste déroulante de marque :
Mon fichier 'modele_ordinateur.php' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $sql = 'SELECT DISTINCT marques.IdMarque,NomMarque FROM marques INNER JOIN modeles ON modeles.IdMarque = marques.IdMarque INNER JOIN typemateriel ON typemateriel.IdTypeMateriel = modeles.TypeMateriel WHERE IdTypeMateriel =:marque'; $marque = $db->prepare($sql); $marque->execute(array(':marque'=>'1')); include 'formulaire_ordinateur.php';
Merci de m'aider car là je suis vraiment à la peine
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 <?php include 'ticket/fonction/db.php'; if(isset($_GET['m']) ){ $marque = $_GET['m']; $marque_modele = $db->prepare("SELECT NomModele from modeles INNER JOIN marques m on m.IdMarque = modeles.IdMarque WHERE m.NomMarque = ':marque'"); $marque_modele->execute(array(':marque'=>$marque)); $result = $marque_modele->fetchAll(PDO::FETCH_NUM); var_dump($result); echo json_encode($result); }![]()
Partager