Bonjour !
Je voudrais lier deux listes déroulantes entres-elles. Les listes Poste_source(Id,Nom,ID_UE) et Départ(ID,Nom,ID_UE) pour cela j'ai utiliser de l'Ajax, voici mon code :

Code pour remplir la liste poste source :
Code php : 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
$retour = "";
$requete = "SELECT ID_UE, Nom_poste_source FROM poste_source ORDER BY Nom_poste_source";
$resultat = $mysqli->query($requete);   
 
if ($resultat) {    // si la requête a fonctionné
    if ($mysqli->affected_rows != 0) {   
 
        while ($enreg = $resultat->fetch_row()) {    
            $retour = "<option value='$enreg[0]'>$enreg[1]</option>";
        }
    }
    else {
        $retour = "AUCUNEDONNEE";
    }
}
else {
    $retour = "REQUETE";
}
 
if ("" == $retour) {
    $retour = "NONDETERMINE";
}
 
echo $retour;

code pour remplir la liste départ :
Code php : 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
$retour = "";
 
$source = $_POST['source'];
 
$donneesValides = true;
if ('' == $source) {
    $donneesValides = false;
}
else {
    $requete = "SELECT Nom_poste_source FROM poste_source WHERE ID_UE = ?";
    $stmt = $mysqli->prepare($requete);
 
    if ($stmt) {
 
        $stmt->bind_param("i", $source);
        $stmt->execute();
        $stmt->store_result();
 
        if ($stmt->num_rows == 0) {
            $donneesValides = false;
        }
 
        $stmt->close();
    }
    else {
        $retour = "REQUETE";
    }
}
 
if ($donneesValides && '' == $retour) {
 
    $requete = "SELECT Id_depart, Nom_depart FROM depart WHERE ID_UE = ? ORDER BY Nom_depart";
    $stmt = $mysqli->prepare($requete);
 
    if ($stmt) {
 
        $stmt->bind_param("i", $source);
 
        $stmt->execute();
        $stmt->store_result();
 
        if ($stmt->num_rows > 0) {
 
            $stmt->bind_result($Id_depart, $Nom_depart);
 
            while ($stmt->fetch()) {
                $retour .= "<option value='$Id_depart'>$Nom_depart</option>";
            }
        }
        else {
            $retour = "AUCUNEDONNEE";
        }
    }
    else {
        $retour = "REQUETE"
    }
 
    if ("" == $retour) {
        $retour = "NONDETERMINE";
    }
}
else {
    $retour = "PARAMETRE";
}
 
echo $retour;

et enfin mon code principal :
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
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
78
79
80
81
82
<form method="post">
    <label for="source">Source :</label><select name="source" id="source" required></select>
    <label for="depart">Depart :</label><select name="depart" id="depart" required></select>
    <input type="submit" value="Envoyer" />
</form>
 
<script>
    $(function () {
        remplirSource();
 
        $("#source").change(function (event) {
            remplirSource();
        });
    });
 
    function remplirSource() {
    var jqxhr = $.ajax({
            type: 'get', 
            url: 'generer-options-source.php',
            dataType: "html", 
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            data: ""
        })
        .done(function (response, textStatus, jqXHR) {
            if ("REQUETE" == response) {
                $("#source").html("<option value=''>Un problème technique nous empêche de retrouver le poste source (code R).</option>");
            }
            else if ("AUCUNEDONNEE" == response) {
                $("#source").html("<option value=''>Il n'y a actuellement aucun poste source dans le système.</option>");
            }
            else if ("NONDETERMINE" == response) {
                $("#source").html("<option value=''>Un problème technique nous empêche de retrouver la source (code I).</option>");
            }
            else if (response.indexOf('<option') != 0) {
                $("#source").html("<option value=''>Un problème technique nous empêche de retrouver la source (code E).</option>");
            }
            else {
                $("#source").html("<option value=''>Veuillez choisir...</option>" + response);
            }
        })
        .fail(function (jqXHR, textStatus, errorThrown) {
            $("#source").html("<option value=''>Un problème technique nous empêche de retrouver le poste source (code A).</option>");
        });
    }
 
    function remplirDepart() {
        var source = $('#source').val();
        var dataString = 'source=' + source;
 
        var jqxhr = $.ajax({
            type: 'post',
            url: 'generer-options-depart.php',
            dataType: "html", 
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            data: dataString
        })
        .done(function (response, textStatus, jqXHR) {
            if ("PARAMETRE" == response) {
                $("#depart").html("<option value=''>Le depart sélectionné n'est pas valide.</option>");
            }
            else if ("REQUETE" == response) {
                $("#depart").html("<option value=''>Un problème technique nous empêche de retrouver les depart (code R).</option>");
            }
            else if ("AUCUNEDONNEE" == response) {
                $("#depart").html("<option value=''>Il n'y a actuellement aucun deprt dans le système.</option>");
            }
            else if ("NONDETERMINE" == response) {
                $("#depart").html("<option value=''>Un problème technique nous empêche de retrouver les departs (code I).</option>");
            }
            else if (response.indexOf('<option') != 0) {
                $("#depart").html("<option value=''>Un problème technique nous empêche de retrouver les departs (code E).</option>");
            }
            else {
                $("#depart").html("<option value=''>Veuillez choisir...</option>" + response);
            }
        })
        .fail(function (jqXHR, textStatus, errorThrown) {
            $("#depart").html("<option value=''>Un problème technique nous empêche de retrouver les departs (code A).</option>");
        });
    }
 
</script>

Voilà je n'ai aucun message d'erreur mais rien ne s'affiche dans les listes..

Si vous pouviez m'aider ça serait gentil ! Merci d'avance