Bonjour tout le monde,
Suite à la source d'Antomicro pour son chat (
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 donc 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