Salut,

J'ai suivi les indications que j'ai trouvé dans la FAQ sur le sujet, mais je ne vois pas pourquoi ma liste déroulante ne s'actualise pas

Voici le code que j'ai fait :
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
...
<script type='text/javascript'>
var xhr = null; 
 
function getXhr(){
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;}}
 
/**
* Méthode qui sera appelée sur le click du bouton
*/
function cotation1(){
getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
di = document.getElementById('val_id_cot3');
di.innerHTML = xhr.responseText;}}
 
// Ici on va voir comment faire du post
xhr.open("POST","cotation1.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de l'auteur
donnee_id_analyse = document.getElementById('val_id_analyse').options[document.getElementById('val_id_analyse').selectedIndex].value;
//alert(idauteur);
xhr.send(donnee_id_analyse);}
</script>
 
...
 
<form>
<select name="val_id_analyse" class="TITRE_20" id="val_id_analyse" onchange="cotation1()">
<option class="TITRE_20">Aucun</option>
<?php
$sql = "SELECT ergoprod_poste_cotation.id_analyse, ergoprod_cotation1.libelle, ergoprod_cotation2.nature, ergoprod_cotation3.niveau
FROM (ergoprod_cotation1 INNER JOIN ergoprod_cotation2 ON ergoprod_cotation1.id_cot1 = ergoprod_cotation2.id_cot1) INNER JOIN (ergoprod_poste_cotation INNER JOIN ergoprod_cotation3 ON ergoprod_poste_cotation.id_cot3 = ergoprod_cotation3.id_cot3) ON ergoprod_cotation2.id_cot2 = ergoprod_cotation3.id_cot2
WHERE (ergoprod_poste_cotation.id_poste=$val_id_poste)";
$result=mysql_query($sql);
while ($row=mysql_fetch_object($result)) {
echo "<option value=\"$row->id_analyse\">$row->libelle = $row->niveau</option>\n";}
?>
</select>
<br>&nbsp;<br>
<div id="val_id_cot3" style="display:inline">
<select class="TITRE_20" name="val_id_cot3">
<option value="-1">Choisir le niveau à modifier</option>
</select>
</div>
</form>
Et le fichier cotation1.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
<?php
require "../../../connect.php";
?>
<head>
<link rel="stylesheet" type="text/css" href="../../Style.css">
<link rel="stylesheet" type="text/css" href="../../Style_page.css">
 
<select name="val_id_cot3" class="TITRE_20">
<option class="TITRE_20">Liste des choix</option>
<?php
$sql_cotation1 = "SELECT ergoprod_cotation3.id_cot3, ergoprod_cotation3.niveau
FROM ergoprod_poste_cotation LEFT JOIN ergoprod_cotation3 ON ergoprod_poste_cotation.id_cot2 = ergoprod_cotation3.id_cot2
WHERE (ergoprod_poste_cotation.id_analyse=".$_REQUEST["donnee_id_analyse"].")
ORDER BY ergoprod_cotation3.evaluation";
echo $sql_cotation1;
$result_cotation1=mysql_query($sql_cotation1);
while ($row_cotation1=mysql_fetch_object($result_cotation1)) {
echo "<option value=\"$row_cotation1->id_cot3\">$row_cotation1->niveau</option>\n";}
?>
</select>
Le problème doit venir de $_REQUEST["donnee_id_analyse"], car si je mets 1 ou une autre valeur, cela fonctionne...

Merci.