Bonjour à tous
Je ne savais pas trop où poser cette question, mais allons-y pour PHP...
J'ai essayé de faire une requête sans changer de page comme on peut si bien le faire depuis l'arrivée de certaines fonctions, mais hélas ça ne marche pas !

Le but est que lorsque je choisis une catégorie dans ma première liste, ça sélectionne automatiquement les sous catégories associées.
Un peu de code HTML pour illustrer tout cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Catégorie :
		<select name="categorie" class="ButtonL" onchange="request(this.form)">
			<option value="-">&nbsp;</option>
			<option value="shopping">Shopping</option>
			<option value="sante">Santé / Bien être</option>
(etc...)
		</select>
Sous catégorie : <select name="sous_categorie" id="sous_categorie" class="ButtonL"></select>
J'ai trouvé de l'aide sur un site, mais je n'arrive pas à faire marcher tout ça...
J'utilise le code JS suivant :

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
 
<script language="javascript">
var l1    = f.elements["categorie"];
var l2    = f.elements["sous_categorie"];
var index = l1.selectedIndex;
if(index < 1)
   l2.options.length = 0;
else {
   var xhr_object = null;
 
   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", "species.php", true);
 
   xhr_object.onreadystatechange = function() {
      if(xhr_object.readyState == 4)
         eval(xhr_object.responseText);
   }
 
   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   var data = "categorie="+escape(l1.options[index].value)+"&form="+f.name+"&select=sous_categorie";
   xhr_object.send(data);
}
</script>
Et le fichier species.php appelé est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?php
$query  = "SELECT `sous_categorie` FROM `pab_articles` WHERE `categorie` = '".$_POST["categorie"]."'";
$query .= " ORDER BY `sous_categorie`";
$result = @mysql_query($query);
 
echo 'var o = null;';
echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
echo 's.options.length = 0;';
while($r = mysql_fetch_array($result))
	echo 's.options[s.options.length] = new Option("'.$r["sous_categorie"].'");';
 
?>
Sachant que ma table pab_articles est en gros comme ceci :

id_article , categorie , sous_categorie , ......


Si quelqu'un sait m'aider... Là je sèche c'est pas évident du tout cette histoire de requête sans bouger...
Merci d'avance