listes liées Base de données+PHP+javascript
Posté : 02 août 2007, 11:37
Bonjour j'aimerais lier 2 listes déroulantes, c'est à dire pouvoir sélectionner un processus (dans ce cas) dans une liste et sélectionner une procédure dans une seconde liste de procédures liées au processus sélectionné:
**CE QUI EST FAIT**
1-la liste déroulante des processus
En fait je n'arrive pas à lier la deuxième liste.J'aimerai m'inspirer des "case" de javascript mais je voudrais parcourir la table "PROCEDURES" automatiquement et que les procedures qui ont le idprocess du PROCESS (processus)sélectionné nourrisent la seconde liste(je suis en oracle et pas MySQL).Je pars de ça:
MErci
bbk91[/code]
**CE QUI EST FAIT**
1-la liste déroulante des processus
En fait je n'arrive pas à lier la deuxième liste.J'aimerai m'inspirer des "case" de javascript mais je voudrais parcourir la table "PROCEDURES" automatiquement et que les procedures qui ont le idprocess du PROCESS (processus)sélectionné nourrisent la seconde liste(je suis en oracle et pas MySQL).Je pars de ça:
Code : Tout sélectionner
<HTML>
<head>
<?php
$db = NewADOConnection("");
$cstr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=$PROTOCOL)(HOST=$HOST)(PORT=$PORT))(CONNECT_DATA=(SID=$SID)))";
$db->Connect($cstr, $USER, $PWD);
$res=$db->Execute("SELECT count(*) FROM processes" );
?>
<script type="text/javascript">
function Choix(formulaire) {
i = formulaire.Boite1.selectedIndex;
if (i == 0) {
$nrows = $res-> Fieldcount();
}
// for (i=0;i<$nrows;i++) {
// formulaire.Boite2.options[i].text="";
// }
return;
}
switch (i) {
<?php
$res=$db->Execute("SELECT idprocedure FROM procedures WHERE" );
echo'idprocedure : var txt = new Array ("Page 1.1","Page 1.2","Page 1.3"); break;';
while ($data=$res->FetchRow())
{
echo "<option> ".$data['HEADING']." </option>";
}
?>
//case 1 : var txt = new Array ('Page 1.1','Page 1.2','Page 1.3'); break;
//case 2 : var txt = new Array ('Page 2.1','Page 2.2','Page 2.3'); break;
//case 3 : var txt = new Array ('Page 3.1','Page 3.2','Page 3.3'); break;
}
formulaire.Boite2.options[0].text="--- Choisissez une procedure ---";
for (i=0;i<$nrows;i++) {
formulaire.Boite2.options[i+1].text=txt[i];
}
}
</script>
</head>
//Ce qui suit est ok
<body>
<form action="#" name="formulaire">
<?php
$req="SELECT * FROM processes ORDER BY idprocess";
$res=$db->Execute($req);
?>
<select name="Boite1" onChange='Choix(this.form)'>
<option selected>--- Choisissez un processus ---</option>
<?php
while ($data=$res->FetchRow())
{
echo "<option> ".$data['HEADING']." </option>";
}
?>
<select name="Boite2" OnChange="alert('vous avez choisi : \n Le processus ' + formulaire.Boite1.selectedIndex + ' et la page ' +formulaire.Boite2.selectedIndex+ '')">
<option selected>--- Choisissez une procédure ---</option>
<option></option>
<option></option>
<option></option>
</select>
</form>
</body>MErci
bbk91[/code]