Bonjour à tous !!!
j'ai besoin d'un coup de main, voila ça fait plusieurs jours je n'arrive pas à trouver la solution de mon problème, j'ai besoin d'alimenter 2 liste déroulantes en fonction du résultat de la 1ère liste déroulante.

Dans ma base de données j'ai 3 tables et chaque table contient un id et un libelle;
  • 1) table département => iddepart, libelle
  • 2) table direction => iddirect, iddepart, libelle
  • 3) table service => idservic, iddire.ct, libelle.

je voudrais qu'à chaque fois que je sélectionne un élément dans la table département par exple agriculture, il m'affiche uniquement les directions du departement "agriculture" dans la seconde liste déroulante.


voici mon code index.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
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
   <?php include('config/databas.php');   
 
  $departement ='';
 
  $query = " SELECT iddepart, libelle FROM departement";
 
     $traitemet = $bdd->prepare($query);
     $traitemet ->execute() ;
 
 
       $result = $traitemet->fetchAll();
        foreach ($result as $row ) {
 
      $departement.= '<option value="'.$row["iddepart"].'">'.$row["libelle"].'</option>';
       }
 
?>
 
<div class ="container" style = "margin-top:30px">
	<div class="control-group">
  <label class ="control-label" for ="selected01">Departement</label>
  <form method ="POST" id="">
 
    <select name ="departement" id ="iddepart" class ="form-control action">
      <option value="">selectionner</option>
       <?php echo $departement; ?>
 
 
    </select></div></div><br>
 
 <div class="container" style = "margin-top:40px">
 
        <div class="control-group">
        <label class ="control-label" for="select01">Direction</label>
 
        <select name ="direction" id ="iddirect" class ="form-control action">
      <option value="">selectionner</option>
        <?php  ?>
 
 
    </select></div></div><br>
 
 
   <script src="assets/jquery-3.4.1.js"></script>
<script>
 
  $(document).ready(function(){
   $(.action).change(function(){
 
    if($(this).val() !='')
    {
      var  action = $(this).attr("id");
      var query = $(this).val();
      var result ='';
 
      if(result=='iddept')
      {
        result = 'iddirect';
      }
      $.ajax({
       url :'divajax.php',
        method: "POST", 
        data :{action:action, query:query},
        success :function(data)
        {
          $('#'+result).html(data);
        }
      })
    }
 
 
   })
 
  })
</script>
mon fichier divajax.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
 if (isset($_POST['action'])){
  include('config/databas.php'); 
  $output ='';
 
  if($_POST['action'] =='iddepart'){
 
    $query = " SELECT iddirect, libelle FROM direction WHERE iddepartt = :iddepartt GROUP BY libelle ";
 
     $traitemet = $bdd->prepare($query);
     $traitemet -> execute(
       array(':iddept' => $_POST["query"] ) 
 
       ); 
 
       $result = $traitemet->fetchAll();
 
        foreach ($result as $row ) {
         $output .= '<option value="'.$row["iddirect"].'" selected="selected">'.$row["libelle"].'</option>';
       }
   }
je rappelle que ça marche pour la 1ère liste mais pas pour la 2ème.
svp je demande votre aide

merçi d'avance