Bonjour à tous,
Voila sur le principe d'un script permettant d'afficher une liste déroulante en fonction d'une autre liste sans recharger la page(
[ Lien ]), j'ai tenté de l'adapté en utilisant des requetes ODBC :
mon index.php :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function sendData(param, page)
{
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else
//définition de l'endroit d'affichage:
var content = document.getElementById("contenu");
XhrObj.open("POST", page);
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData
</script>
</head>
<body>
<?php
// Paramètres de la Connexion à la base MYSQL
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
$connexionstring = odbc_connect('incident','root','emcdeux') or die ("Connexion au serveur impossible");
// Séléction de tous les enregistrements de la table Catégorie
$Query = "Select designation, id_cat from script_categorie order by designation;";
//execute query
$queryexe = odbc_do($connexionstring, $Query) or die ("Select impossible");
echo "<form method='POST' action='valid.php'>";?>
<select method="post" size="1" name="cat" OnChange="sendData('id='+this.value,'liresc.php')" onKeyUp="sendData('id='+this.value,'liresc.php')">
<?php
while ($dt = odbc_fetch_row($queryexe))
{
$designation = odbc_result($queryexe, 1);
echo ("<option value=\"$designation\">$designation</option>");
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}
odbc_close()
?>
</select>
<? echo('id'); ?>
<div id="contenu">
<select size='1' name='souscat'>
<?php
// affichage des sous-catégorie appartenant à la première catégorie.
$connexionstring2 = odbc_connect('incident','root','emcdeux') or die ("Connexion au serveur impossible");
$rq="Select designation, idcat from script_sous_categorie where idcat=1;";
$result= odbc_do($connexionstring2, $rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt2=odbc_fetch_row($result))
{
$designation3 = odbc_result($result, 1);
echo ("<option value=\"$designation\">$designation3</option>");
}
echo "</select>";
?>
</div>
</form>
</body>
</html>
Et voici mon liresc.php :
<?php
header('Content-type: text') ; // on déclare ce qui va être afficher
// test des POST emis
if(isset($_POST['id']) && !empty($_POST['id']) ){
$connexionstring3 = odbc_connect('incident','root','emcdeux') or die ("Connexion au serveur impossible");
$Query2 ="Select designation, idcat from script_sous_categorie where idcat=".$_POST['id']." ;";
$queryexe2 = odbc_do($connexionstring3, $Query2) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
if (odbc_num_rows($queryexe2)>0)
{
echo "<select size='1' name='souscat'>";
}
else
{
echo utf8_encode("Pas de sous catégories disponible");
}
while ($dt3=odbc_fetch_row($queryexe2))
{
$designation2 = odbc_result($queryexe2, 1);
echo ("<option value=\"$designation2\">$designation2</option>");
}
echo "</select>";
}
?>
Le problème se situe au niveau de la variable 'id' qui ne transmet aucune valeur pour la page liresc.php.