Bonjour à Tous, j'ai créer deux listes déroulantes.
La 2nde liste est filtrée à partir du résultat sélectionné dans la 1ère.

voici le code 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
 
<script type='text/javascript'>
 
			function getXhr(){
                                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; 
				} 
                                return xhr;
			}
 
			/**
			* Méthode qui sera appelée sur le click du bouton
			*/
			function go(){
				var xhr = 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){
						leselect = xhr.responseText;
						// On se sert de innerHTML pour rajouter les options a la liste
						document.getElementById('modele').innerHTML = leselect;
					}
				}
 
				// Ici on va voir comment faire du post
				xhr.open("POST","ajaxConstructeur.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'
				sel = document.getElementById('constructeur');
				idconstructeur = sel.options[sel.selectedIndex].value;
				xhr.send("idConstructeur="+idconstructeur);
			}
		</script>
Ensuite ma requête permettent de récupérer la valeur de mes champs à modifier :
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
 
connexion();
 
 
$req = mysql_query( "SELECT * FROM equipement, materiel2 , modele2 , constructeur2, serveur 
WHERE equipement.id_equipement = materiel2.id_equipement 
AND materiel2.id_modele = modele2.id_modele 
AND modele2.id_constructeur = constructeur2.id_constructeur 
AND materiel2.id_equipement = serveur.id_equipement 
AND  equipement.id_equipement = ".$id_equipement);
while( $res=mysql_fetch_array($req) ) {
       $nom=$res[3]; $id_constructeur=$res[11]; $id_modele=$res[10];  $fonction=$res[17]; $format=$res[18];
	   $bios=$res[19]; $date=$res[4]; $status=$res[5]; $comment=$res[6]; 
 
}
 
$requete = mysql_query( "SELECT id_projet FROM binomer_projet where id_equipement= ".$id_equipement) or die ('Erreur : '.mysql_error() );
while( $result=mysql_fetch_array($requete) ) {
       $id_projet= $result[0]; 	
 
}

Enfin mes 2 listes déroulantes à la suite :
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
 
 
<tr>
        	<td class="right-label" style="width: 100px;" nowrap>Constructeur *</td>
                <td colspan=3 class="left-label" nowrap>
                <select name='constructeur' id='constructeur' onchange='go()'>
					<option value='-1'>-----------------------</option>
					<?
						mysql_connect("localhost","root","");
						mysql_select_db("test");
						$res = mysql_query("SELECT * FROM constructeur2 ORDER BY nom");
						while($row = mysql_fetch_assoc($res)){
						    echo $row["id_constructeur"];
 
							echo "<option value='".$row["id_constructeur"]."'>".$row["nom"]."</option>";
							if($id_constructeur == $row[0]) { print "selected"; }
                                                print ">$row[1]</option>\n";
 
						}
					?>
				</select>
                </td>
        </tr>
	<tr><td colspan=2 style="font-size: 5;"><br></td></tr>
 
	<tr>
        	<td class="right-label" style="width: 30px;" nowrap>Modele *</td>
                <td colspan=3 class="left-label" nowrap>
                <div id='modele' style='display:inline'>
				<select name='modele'>
					<option value='-1'>------------------------</option>
				</select>
				</div>
 
			<?php print "<A style=\"cursor: pointer;\" onclick=\"javascript:window.open('add_constructeur.php?clients=$id_client','popup','width=400,height=400,scrollbars=0,location=0,status=0,resizable=0');\">&nbsp;&nbsp;<img src=\"../images/add.jpg\" width=11 height=11 border=0>&nbsp;</A>"; ?> </td>
        </tr>
Jusqu'ici je n'ai pas de Souci, ça fonctionne nickel !

Le problème que je rencontre , c'est quand je souhaite modifier le contenu de ces 2 listes :
- je clique sur le bouton modifier qui a comme parametre dans l'URL "id" qui est l'id de l'équipement et id_client qui correspond à l'id_client.
- Tous mes autres champs (text ...) remontent correctement les informations à modifier .....mais pas les listes déroulantes.
J'aimerais que mes listes déroulantes lors de la modification m'affiche la valeur contenue dans ma base de données ..

J'ai donc essayé pour ma première liste déroulante le code suivant :

if($id_constructeur == $row[0]) { print "selected"; }
print ">$row[1]</option>\n";

Si $id_constructeur = au premier champs de mon tableau rempli par la requete .., alors on sélectionne le résultat ....
Mais ça ne fonctionne pas....


Quelqu'un pourrait il m'aider ? Je pense que c'est tout bête mais je galère depuis un petit moment ...

Merciii