Xmlhttprequest et select

Résolu
cseagle Messages postés 99 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 5 août 2009 - 20 août 2005 à 16:09
cseagle Messages postés 99 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 5 août 2009 - 20 août 2005 à 20:37
Bonjour tout le monde,





Suite à la source d'Antomicro pour son chat sur phpcs (32681 http://www.phpcs.com/code.aspx?ID=32681) j'ai decidé d'essayer de travailler avec le xmlhttprequest.





J'ai donc utiliser le tuto de toutjavascript.com .


J'ai plusieurs select liés les uns aux autres :





- le premier engendre le deuxième


- puis selon le choix, le deuxième engendre un troisième select





tout fonctionne bien, les infos sont récupérées dans la base et afficher.





Mon problème est le suivant :





Lors de la fabrication des liste Select, le script donne la valeur
affichée à l'option. Moi je voudrais afficher par exemple le nom de
l'option et attribuer en value l'id de l'option.





Quelqu'un peut il m'expliquer comment je dois m'y prendre ?





voici le code que j'utilise :





Fichier liste_ep_dep.php





if(isset($_POST["form"]) and isset($_POST["select"]) and isset($_POST["club"])) {


header('Content-type: text/html; charset =iso-8859-1');


require("../ccpc_conf/config.php");


require("../ccpc_conf/fonctions.inc.php");


connect_db();




$query = "SELECT `epreuve` FROM
".$prefixe."".$agenda." WHERE `id_club` = '".$_POST["club"]."' ORDER BY
`epreuve` ASC";


$requete=mysql_db_query($db_base,$query,$db) or die(mysql_error());


mysql_close();


echo 'var o = null;';


echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';


echo 's.options.length = 0;';


echo 's.options[s.options.length] = new Option("Choisissez...");';


while($r = mysql_fetch_array($requete)) {


echo 's.options[s.options.length] = new Option("'.$r["epreuve"].'");';





// Je pense que c'est la que je dois modifier mais comment??





}


} else {


echo 'Erreur !!!';


}





Fichier du formulaire





javascript





function request06(f) {


var l1 = f.elements["club"];


var l2 = f.elements["epreuve"];


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", "liste_ep_dep.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 = "club="+escape(l1.options[index].value)+"&form="+f.name+"&select=epreuve";


xhr_object.send(data);


}


}





Merci d'avance pour votre aide

2 réponses

GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
20 août 2005 à 17:02
Salut!

Si j'ai bien compris, d'après moi ça serait qqc comme ça :

echo 's.options[s.options.length] = new Option("'.$r["epreuve"].'","'.$r["id_epreuve"].'");';

Pour autant l'avoir selectionné :
$query "SELECT `epreuve`, `id_epreuve` FROM ".$prefixe."".$agenda." WHERE `id_club` '".$_POST["club"]."' ORDER BY `epreuve` ASC";

A+, Ghislain
3
cseagle Messages postés 99 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 5 août 2009
20 août 2005 à 20:37
Merci beaucoup ca marche nikel ;-)



@++
0
Rejoignez-nous