3 listes déroulantes liées avec BDD

whitedwarfcabs Messages postés 3 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 22 août 2007 - 25 avril 2005 à 09:32
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 25 avril 2005 à 10:33
J'essaie de créer 3 listes déroulantes liées entre elles. Les choix des listes déroulantes proviennent d'une base de données.
Je cherche de l'aide pour finir mon programme, car il m'affiche un bien méchant "Objet attendu" que je ne comprends pas... J'ai créé 3 tables : sous_liens ("idsousliens","liens","titre"); liens("idliens","cat_liens","titre"); cat_liens("id","titre"). 'Sous-liens' dépend du choix de 'liens', qui dépend du choix de 'cat_liens'. Voilà je copie mon fichier :

****

<?
// Paramètres persos
$host = "localhost"; // voir hébergeur
$user = "root"; // vide ou "root" en local
$pass = ""; // vide en local
$bdd = "testliste"; // nom de la BD
// connexion
@mysql_connect($host,$user,$pass)
or die("Impossible de se connecter");
@mysql_select_db("$bdd")
or die("Impossible de se connecter");
?>

<?
$SQL="SELECT id,titre FROM cat_liens";
$result = mysql_query($SQL);

?>

<FORM name="isc">

<select name="ListeA" size="1" onChange="redirect(this.options.selectedIndex)" >

<option selected>Votre Sélection ?</option>
<? while ($val = mysql_fetch_array($result)) {
?> <option><? echo $val["titre"];?></option>
<? } ?>

</select>

<select name="ListeB" size="1" onChange="redirect1(this.options.selectedIndex)"
>
<option selected>Votre Sélection ?</option>
</select>

<select name="ListeC" size="1" onChange="redirect2(this.options.selectedIndex)"
>
<option selected>Votre Sélection ?</option>
</select>

<SCRIPT type="text/javascript">
<!--
<?
$SQL="SELECT id,titre FROM cat_liens";
$result = mysql_query($SQL);
?>

var groups=document.isc.ListeA.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[0][0]=new Option("","#");
<?
$j1=1;
while ($val = mysql_fetch_array($result)) { $SQL2 "select idliens,titre,cat_liens from liens where cat_liens ";
$SQL2 .= $val["id"];
$result2 = mysql_query($SQL2);
$j2=0;
while ($val2 = mysql_fetch_array($result2)) {
$tit= "".$val2["titre"].""; ?>
group[<?=$j1?>][<?=$j2?>]=new Option("<?=$tit?>","");
<? $j2=$j2+1;}
$j1=$j1+1;}?>

var temp=document.isc.ListeB

function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
redirect1(0)
}

var secondGroups=document.isc.ListeB.options.length
var secondGroup=new Array(groups)
for (i=0; i<groups; i++) {
secondGroup[i]=new Array(group[i].length)
for (j=0; j<group[i].length; j++) {
secondGroup[i][j]=new Array() }}

secondGroup[0][0][0]=new Option("","#");

<?
$SQL="SELECT * FROM cat_liens";
$result = mysql_query($SQL);
?>
<?

$j1=1;
while ($val = mysql_fetch_array($result)) { $SQL2 "select idliens,titre,cat_liens from liens where cat_liens ";
$SQL2 .= $val["id"];
$result2 = mysql_query($SQL2);
$j2=0;
while ($val2 = mysql_fetch_array($result2)) { $SQL3 "select idsousliens,titre,liens from sous_liens where liens ";
$SQL3 .= $val2["idliens"];
$result3 = mysql_query($SQL3);
$j3=0;
while ($val3 = mysql_fetch_array($result3)) {
$tit2= "".$val3["titre"].""; ?>
secondGroup[<?=$j1?>][<?=$j2?>][<?=$j3?
>]=new Option("<?=$tit2?>","");
<?
$j3=$j3+1;}
$j2=$j2+1;}
$j1=$j1+1;}?>

var temp1=document.isc.ListeC
function redirect1(y){
for (m=temp1.options.length-1;m>0;m--)
temp1.options[m]=null
for (i=0;i<secondGroup[document.isc.ListeA.option
s.selectedIndex][y].length;i++){
temp1.options[i]=new Option(secondGroup[document.isc.ListeA.options.s
electedIndex][y][i].text,secondGroup[document.is
c.ListeA.options.selectedIndex][y][i].value)
}
temp1.options[0].selected=true
}

function redirect2(z){
window.location=temp1[z].value
}

//-->
/
</SCRIPT>

</FORM>

****

Si qqn peut m'aider... Merci!!!!

1 réponse

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 avril 2005 à 10:33
Hello,



il s'agit d'un probleme javascript et pas php. Tu devrais plutot aller
sur le forum javascript, les reponses seront sans doute plus rapides.
0
Rejoignez-nous