Bonjour à tous,

voilà je vous expose mon problème:
j'ai une page php sur laquelle j'ai 2 listes déroulantes liées à une base de données.
Et lorsque je sélectionne dans ma 1ère, je voudrais que ma seconde se rafraichisse (ie modifier la requête qui rempli cette liste déroulante).
J'ai donc mis un évènement onchange sur ma 1ère liste qui lance une fonction javascript afin de me renvoyer sa valeur (selected) pour que je puis modifier la requête sur la seconde liste.

en parcourant les forum, j'ai vu qu'on pouvait utiliser xmlhttprequest et sa propriété send pour récupérer une valeur en php, mais malheureusement, c là que je bloque, je ne reçoit rien .

voici ma fonction javascript:

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
function test(param){ 
	var xhr_object = null;
	var data = null;
 
	//initialisation de l'objet XMLHttpRequest 
	if(window.XMLHttpRequest) // Firefox
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // Internet Explorer
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else { // XMLHttpRequest non supporté par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		return;
	}
 
	xhr_object.open("POST", "index.php?c=maintenances&ac=ajouter", true);
 
	//pour la methode POST
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
	data = "vincent";	  	
	xhr_object.send(data); 
}
et dans mon php, je fais (j'ai sorti de mon form le test pour recevoir la valeur javascript au cas où):

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
<form class="form_detail" method="post" action="index.php?c='.$this->className.'&ac=ajouter">
      		<fieldset>
      			<legend>Informations</legend>
						<dl>
      				<dt><label for="intitule">Intitulé</label><sup>*</sup> :</dt>
      				  <dd><input type="text" class="txtLbl oblig" name="maintenances[lbl]" id="lbl" value="'.$maintenances['lbl'].'" /></dd>
							<dt><label for="t_eqpts_id">Type d&acute;&eacute;quipement</label> :</dt>
								<dd><select name="maintenances[t_eqpts_id]" onchange="test(this.value);">';
								  $listeT_Eqpts = $this->tableT_Eqpts->listeTout("lbl", null,0);
									echo '<option value=null>< non renseigné ></option>';
									foreach ($listeT_Eqpts as $t_eqpts){
									  echo '<option ';
									  if($maintenances['t_eqpts_id'] == $t_eqpts['id']){echo 'selected ';};
										echo ' value="'.$t_eqpts['id'].'">'.$t_eqpts['lbl'].'</option>';
									}
							echo '</select></dd>';
							echo '<dt><label for="etats_id">Etat</label><sup>*</sup> :</dt>
							  <dd><select name="maintenances[etats_id]" class="oblig">';
								  $listeEtats = $this->tableEtats->listeTout("lbl", null,0);
									foreach ($listeEtats as $etats){
									  echo '<option ';
									  if($maintenances['etats_id'] == $etats['id']){echo 'selected ';};
										echo ' value="'.$etats['id'].'">'.$etats['lbl'].'</option>';
									}
							  echo '</select></dd>
								</dl>
      		</fieldset> 				
					<input type="hidden" name="maintenances[desactive]" value="0"/>					
      		<button type="submit" name="ajouter"><img src="images/fichier_ajouter.png" alt=""/>Ajouter</button>
      	</form>
if(isset($_POST['cmd'])){
  echo $_POST['cmd'];
}
else 
  echo 'erreur';

je me demande si mon code est correct car ça m'écrit toujours "erreur" au lieu de mon $_POST?
(j'ai un petit doute sur le fait que je sois déjà sur la page que j'utilise dans mon xhr_object.open ne fausse pas mon code ??)

voilà, si quelqu'un à un avis à m'apporter, je suis preneur
(désolé s'il y a trop de blabla, mais une fois parti ... )