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 :
J'ai trouvé de l'aide sur un site, mais je n'arrive pas à faire marcher tout ça...
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="-"> </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'utilise le code JS suivant :
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
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>
Sachant que ma table pab_articles est en gros comme ceci :
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"].'");'; ?>
id_article , categorie , sous_categorie , ......
Si quelqu'un sait m'aider... Là je sèchec'est pas évident du tout cette histoire de requête sans bouger...
Merci d'avance![]()
Partager