Bonjour,

J'ai un code qui me permet d'avoir deux sélecteurs et un affichage de résultat.

Le code fonctionne très bien sauf qu'au lieu de 2 sélecteurs, je voudrai en rajouter 1 pour au total en avoir 3.

Voici mon code :

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
76
77
<?php
require_once 'connexion.php';
$req = $connexion->query('SELECT family FROM items GROUP BY family');
$req->execute();
$families = $req->fetchAll();
?>
<!DOCTYPE html>
<html>
<head>
  <title>Test de select AJAX</title>
  <meta charset="utf8">
  <script type="text/javascript" src="https://code.jquery.com/jquery-2.2.3.min.js"></script>
  <script type="text/javascript">
    $(function(){
      var form = $('#form'),
          family_select = $('#family'),
          url = form.attr('action'),
          items_container = $('#items');
 
      $('body').on('change', '#family', function(ev){
        $.post(
          url,
          form.serializeArray(),
          function(data){
            items_container.html(data);
          }
        );
      });
    });
  </script>
</head>
<body>
 
 
<form id="form" method="post" action="data.php">  
  <div id="families">
    <label for="family">Famille : </label>
    <select name="family" id="family">
      <option value="">--</option>
      <?php foreach( $families as $family) : ?>
      <option value="<?php echo $family['family']; ?>"><?php echo $family['family']; ?></option>
      <?php endforeach; ?>
    </select>
  </div>
  <div id="items"></div>
</form>
</body>
</html>
 
data.php
<?php
require_once 'connexion.php';
 
if( !isset($_POST['family']) || empty($_POST['family'])){
  echo '';
  return;
}
 
$family = htmlspecialchars($_POST['family']);
 
$sql = 'SELECT item FROM items WHERE family LIKE :family ORDER BY item';
 
$req = $connexion->prepare($sql);
$req->execute(array(':family' => $family));
$data = $req->fetchAll(PDO::FETCH_ASSOC);
 
$output = '<label for="item">Elément : </label>';
$output .= '<select name="item">';
$output .= '<option value="">--</option>';
foreach ($data as $item) {
  $output .= '<option value="' . $item['item'] . '">' . $item['item'] . '</option>';
}
$output .= '</select>';
 
echo $output;
return;
?>
Si on pouvait me montrer comment faire ça serait sympa. Il faut modifier le code Ajax pour lui indiquer le 3 sélecteurs, mais ne sachant trop comment faire ...

Merci d'avance pour vos retours.