listes liées Base de données+PHP+javascript
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:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<head>
<?php
include "modules/adodb/adodb.inc.php";
include "config/config.php";
$db = NewADOConnection("oci8");
$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