Bonjour,

Je réalise en ce moment un petit site (php/mysql), et je voudrais afficher une liste déroulante, et après avoir sélectionné un élément, je voudrais générer le contenu de la 2ème liste déroulante.

Le sujet a déjà été traité de nombreuses fois, mais malgré mes nombreuses lectures, je ne parviens pas à trouver le problème.

Voici mon code :

VuePlanningAffichage.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
 
// 1er formulaire
<select name="heure" onchange="generateSelect(this.value)">
    <?php
    $cpt = 0;
    for ($cpt = HEURE_DEBUT; $cpt < HEURE_FIN; $cpt++) {
        // Si la duree des soins n'excede pas le temps restant
        if ((HEURE_FIN - $cpt) >= $heure + $minute) {
            ?>
            <option value="<?php echo $cpt ?>"><?php echo $cpt ?></option>
            <?php
        }
    }
    ?>
    <div id="selectDiv"></div>
</select>
 
 
H
 
<?php
$heureMax = $cpt - 1;
?>
 
// 2ème formulaire. (celui a générer)
<select name="minute">
    <?php
    for ($cpt = 0; $cpt <= 55; $cpt = $cpt + 5) {
        //if() {
        ?>
        <option value="<?php echo $cpt ?>"><?php echo $cpt ?></option>
        <?php
        //}
    }
    ?>
</select>
ajouter.js
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
/** Méthode éffectuant une requête Ajax 
@param url : path du fichier interrogé
@param param : parametres a transmettre.
**/
XHR = function(url,param) {
    // Création et instanciation de l'objet XHR
    var xhr = null;
    if(window.XMLHttpRequest) // Firefox et autres
        xhr = new XMLHttpRequest(); 
    else if(window.ActiveXObject){ // Internet Explorer 
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    else { // XMLHttpRequest non supporté par le navigateur 
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
        xhr = false; 
    }
    // Ouverture de la connexion avec le serveur 
    xhr.open('POST',url,true); 
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
    // Envoi de la requête XHR
    xhr.send(param);
 
    xhr.onreadystatechange = function() 
    {
        if (xhr.readyState < 4) 
        {	//Si la requête n'est pas terminé
        }
        else if (xhr.readyState == 4 && xhr.status==200) 
        {	//Si la requête s'est terminé avec succès
            XHRresult(xhr.responseText);
        }
        else if (xhr.readyState == 4 && xhr.status!=200) 
        {	//Si la requête s'est terminé sans succès
            alert("La requête n'a pas aboutit, un problème est survenu." + xhr.status);
        }
    };
    if(xhr.timeout)
    {
        xhr.timeout = 2000;
    }
    return xhr;
}
 
/** Methode analysant & traitant le xml retourné par la requête Ajax 
@param response : reponse de la requête.
**/
XHRresult = function(response){
    var selectDiv = document.getElementById("selectDiv");
    if(selectDiv && response!="false")
    {	// Si l'element existe
        selectDiv.innerHTML = response;
    }
    else if(response=="false")
    {	// Si la réponse envoyé du fichier php est null
        alert("Le fichier PHP a répondu null!");
    }
}
/** Methode déclenché sur le onchange du premier select
@param value : valeur selectionnée.
**/
generateSelect = function(value){
    XHR("./generateSelect.php","value=" + value);
}
generateSelect.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?php
	$response = null;
	if(isset($_POST['value']))
	{	//Si le paramétre value est existant
		// On génére le select de réponse
		//$response = "<select>[...]</select>";
            $response = 'ok';
	}
	//On test si la réponse n'est pas vide
	echo ($response!=null)?$response:"false";
?>
Quand je sélectionne un élément dans la première liste déroulante, l'erreur "La requête n'a pas aboutit, un problème est survenu." survient.
J'ai affiché le statut, j'obtiens 404.

Quelqu'un peut-il m'aider s'il vous plait.

Merci.