Forum dédié au moteur de recherche et aux techniques d'optimisation par #taggle
Vous n'�tes pas identifi�.
Bonjour les totos (et les totettes ?);
Je bricole un site pour un copain ( http://www.netalys.com/fred/ ) et j'ai un souci sur un formulaire.
La 2ème partie du formulaire qui s'intitule ('vous recherchez') commence par un choix alternatif 'voilier' ou 'bateau moteur' (ligne 66). Cette action devrait déclencher un deuxième choix (quel type de voilier ou quel type de bateau moteur).
J'ai pensé à un changement de la liste du second champ déclenché par le choix dans le 1er, ou un affichage alternatif de l'un ou l'autre SANS RECHARGEMENT DE LA PAGE.
Je suis pas fermé sur le choix de la solution, pourvu qu'elle soit simple et élégante
Problème, je suis pas développeur et j'y connais rien en javascript.
Quelqu'un pourrait-il m'aider. Il y gagnera au choix, des $$$, des bisous avec ou sans barbe de 3 jours, des backlinks, une reconnaissance éternelle d'occasion...
Hors ligne
Salut,
T'as de la chance j'avais déjà un script du genre tout fait en Ajax
Page du formulaire
<script type="text/javascript" src="ajax.form.js"></script> <form action="" id="proposer"> <label for="cat">Catégorie :</label> <select name="cat" id="cat" onchange="get_sscats(this.form)"> <option value="0" selected="selected">-----------</option> <option value="1">Bateau à moteur</option> <option value="2">Voilier</option> </select> <br /> <label for="sscat">Sous-catégorie :</label> <select name="sscat" id="sscat"> <option value="0" selected="selected">-----------</option> </select> </form>
ajax.form.js
function get_sscats(f) { var l1 = f.elements["cat"]; var l2 = f.elements["sscat"]; 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", "getsscats.php", true); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) eval(xhr_object.responseText); } if(xhr_object.readyState < 4) { var o = null; var s = document.forms["proposer"].elements["sscat"]; s.options.length = 0; s.options[s.options.length] = new Option("Chargement des sous-catégories...", "0"); } xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); var data = "id="+escape(l1.options[index].value)+""; xhr_object.send(data); } }
getsscats.php
<?php header('Content-type: text/html; charset=iso-8859-1'); echo 'var o = null;'; echo 'var s = document.forms["proposer"].elements["sscat"];'; echo 's.options.length = 0;'; echo 's.options[s.options.length] = new Option("-----------", "0");'; if($_POST['id']=='1'){ // on affiche les sous-catégories de Bateau à moteur echo 's.options[s.options.length] = new Option("open", "1");'; echo 's.options[s.options.length] = new Option("fly", "2");'; } elseif($_POST['id']=='2') { // on affiche les sous-catégories de Voilier echo 's.options[s.options.length] = new Option("sloop", "3");'; echo 's.options[s.options.length] = new Option("deriveur", "4");'; } ?>
Testé ici : http://rottman.free.fr/test/proposer.php
Hors ligne
Ca à l'air énorme ton truc. Je teste ça cet après midi.
Merci !
Hors ligne
Ca marche impec !!!
http://www.netalys.com/fred/index.php
Hors ligne
Dans la foulée, j'ai un bug d'affichage sur IE. Ca fait plus d'une heure que je suis dessus, mais je comprends toujours pas : Ce con m'aligne le début du formulaire avec la fin du contenu du bloc à droite ! (en l'occurence les liens !). Incompréhensible.
Hors ligne
Rottman permet moi de te dire que ça dépotte
Hors ligne
Ouep y'a un tuto sympa sur les XMLHttpRequest
>> http://www.toutjavascript.com/savoir/xm … quest.php3
Hors ligne
tom_sawyer a �crit:
Rottman permet moi de te dire que ça dépotte
Comme dirait Sid : "U rox !"
PS : qqn peut-il me confirmer le bug d'affichage sous IE
Hors ligne
Pas de bugs, sous IE, ou alors je ne comprends pas ton bug..
Toujours très sympa, ce qu'on arrive à faire, en ajax
Par contre, ca pose toujours de très gros problèmes pour le réf... Là, c'est un formulaire, mais pour une page 'normale', c'est déjà 'moins top'..
Derni�re modification par Anonymus (23-06-2006 23:23:21)
Hors ligne
Hors ligne
Sinon vous savez comment parcourir un document xml en javascript (sinon, si vous avez un lien qui liste les fonctions javascript du DOM, ça devrait aller) ?
Hors ligne