Listes dynamiques - problème
Posté : 24 sept. 2005, 16:45
Je voudrais rafraichir dynamiquement des selects sans rechargement de la page. J'ai créé le code suivant, mais il ne fonctionne pas : seule le premier lieu s'affiche ("Beaune") et la première structure "HDI Beaune").
Si vous pouviez m'aider SVP, je ne comprends pas. Merci d'avance
Fichier test.php
Si vous pouviez m'aider SVP, je ne comprends pas. Merci d'avance
Fichier test.php
<SCRIPT>
//Creation du tableau
Tlieu=new Array();
Tbatiment=new Array();
Tstructure=new Array();
Tlieu[0]='Beaune';
Tbatiment[0]=new Array();
Tbatiment[0][0]=new Array();
Tbatiment[0][0][0]='HDI de B';
Tstructure[0][0][0]=new Array();
Tstructure[0][0][0][0]='Centre de B.';
Tstructure[0][0][0][1]='B-CDI';
Tstructure[0][0][0][2]='FI';
Tstructure[0][0][0][3]='ICE';
Tstructure[0][0][0][4]='SA BE';
Tstructure[0][0][0][5]='SA BO';
Tstructure[0][0][0][6]='SA NG';
Tstructure[0][0][0][7]='SA SA';
Tstructure[0][0][0][8]='GSM';
Tstructure[0][0][1]=new Array();
Tstructure[0][0][1][0]='Centre des IF de B';
Tstructure[0][0][1][1]='Dessin';
Tstructure[0][0][1][2]='Géo';
Tstructure[0][0][1][3]='Récept';
Tstructure[0][0][1][4]='Sf 1';
Tstructure[0][0][1][5]='Sf 2';
Tstructure[0][0][2]=new Array();
Tstructure[0][0][2][0]='CH de B';
Tstructure[0][0][2][1]='Contrôle';
Tstructure[0][0][2][2]='Fichier';
Tstructure[0][0][2][3]='Réception - Comptabilité';
Tstructure[0][0][3]=new Array();
Tstructure[0][0][3][0]='Divers B';
Tstructure[0][0][3][1]='Restaurant administratif';
Tstructure[0][0][4]=new Array();
Tstructure[0][0][4][0]='RE de B';
Tstructure[0][0][4][1]='CE';
Tstructure[0][0][4][2]='Compta';
Tstructure[0][0][4][3]='IFU 1';
Tstructure[0][0][4][4]='IFU 2';
Tlieu[1]='Chatillon sur Seine';
Tbatiment[1]=new Array();
Tbatiment[1][0]=new Array();
Tbatiment[1][0][0]='HDI de C';
Tstructure[1][0][0]=new Array();
Tstructure[1][0][0][0]='CR de C';
Tstructure[1][0][0][1]='ICE';
Tstructure[1][0][0][2]='IFU';
Tstructure[1][0][0][3]='SA de C';
Tlieu[2]='Dijon';
Tbatiment[2]=new Array();
Tbatiment[2][0]=new Array();
Tbatiment[2][0][0]='DS (Social)';
Tstructure[2][0][0]=new Array();
Tstructure[2][0][0][0]='Serv soc';
Tstructure[2][0][0][1]='Délégation';
Tstructure[2][0][0][2]='M T';
Tbatiment[2][1]=new Array();
Tbatiment[2][1][0]='DS DIJON';
Tstructure[2][1][0]=new Array();
Tstructure[2][1][0][0]='DSF';
Tstructure[2][1][0][1]='CDA';
Tstructure[2][1][0][2]='Délégation à la communication';
Tstructure[2][1][0][3]='DIV I';
Tstructure[2][1][0][4]='DIV II';
Tstructure[2][1][0][5]='DIV III';
Tstructure[2][1][0][6]='DIV IV';
Tstructure[2][1][0][7]='Secrétariat';
Tbatiment[2][2]=new Array();
Tbatiment[2][2][0]='FORPRO DIJON';
Tstructure[2][2][0]=new Array();
Tstructure[2][2][0][0]='CRF';
Tstructure[2][2][0][1]='OCS';
Tbatiment[2][3]=new Array();
Tbatiment[2][3][0]='HDI D';
Tstructure[2][3][0]=new Array();
Tstructure[2][3][0][0]='ASU';
Tstructure[2][3][0][1]='Accueil';
Tstructure[2][3][0][2]='Imprimés';
Tstructure[2][3][0][3]='Loge';
Tstructure[2][3][1]=new Array();
Tstructure[2][3][1][0]='BRF';
Tstructure[2][3][1][1]='Géo';
Tstructure[2][3][1][2]='TOPO';
Tstructure[2][3][2]=new Array();
Tstructure[2][3][2][0]='C DN';
Tstructure[2][3][2][1]='Renfort';
Tstructure[2][3][2][2]='SA D';
Tstructure[2][3][2][3]='SA G';
Tstructure[2][3][2][4]='SA IT';
Tstructure[2][3][2][5]='SA M';
Tstructure[2][3][2][6]='SA Mo';
Tstructure[2][3][2][7]='SA P';
Tstructure[2][3][2][8]='SA Q';
Tlieu[3]='Montbard';
Tbatiment[3]=new Array();
Tbatiment[3][0]=new Array();
Tbatiment[3][0][0]='HDI MONTBARD';
Tstructure[3][0][0]=new Array();
Tstructure[3][0][0][0]='CR de Montbard';
Tstructure[3][0][0][1]='ICE';
Tstructure[3][0][0][2]='IFU';
Tstructure[3][0][0][3]='SA M';
function ViderListe(MyList)
{do
MyList.remove(0);
while (MyList.length)
}
function RempliLieu(MyForm)
{
ViderListe(MyForm.Lieu);
taille=Tlieu.length;
for (i = 0; i < taille; i++)
{
var MyOption=document.createElement('OPTION');
MyOption.text=Tlieu[i];
MyOption.value=Tlieu[i];
MyForm.Lieu.add(MyOption);
}
}
function ChangeBatiment(MyIndex, MyForm)
{ViderListe(MyForm.Batiment);
var taille=Tbatiment[MyIndex].length;
for (i=0; i<taille; i++)
{
var MyOption=document.createElement('OPTION');
MyOption.text=Tbatiment[MyIndex][i][0];
MyOption.value=Tbatiment[MyIndex][i][0];
MyForm.Batiment.add(MyOption);
}
ChangeStructure(MyIndex,0,MyForm);
}
function ChangeStructure(IndexLieu,MyIndex,MyForm)
{ViderListe(MyForm.Structure);
var taille=Tstructure[IndexLieu][MyIndex].length;
for (i=0; i<taille; i++)
{
var MyOption=document.createElement('OPTION');
MyOption.text=Tstructure[IndexLieu][MyIndex][i][0];
MyOption.value=Tstructure[IndexLieu][MyIndex][i][0];
MyForm.Structure.add(MyOption);
}
ChangeService(IndexLieu,MyIndex,0,MyForm);
}
function ChangeService(IndexLieu,IndexBatiment,MyIndex,MyForm)
{ViderListe(MyForm.Service);
var taille=Tstructure[IndexLieu][IndexBatiment][MyIndex].length;
for (i=1; i<taille; i++)
{
var MyOption=document.createElement('OPTION');
MyOption.text=Tstructure[IndexLieu][IndexBatiment][MyIndex][i];
MyOption.value=Tstructure[IndexLieu][IndexBatiment][MyIndex][i];
MyForm.Service.add(MyOption);
}
}
</SCRIPT>
<?
// Début formulaire de recherche
echo "<FORM NAME=multirecherche ACTION=\"test.php\" METHOD=\"GET\">";
echo "<TABLE >";
echo "<TR>";
echo "<TD >Lieu";
echo "<TD>";
echo "<SELECT NAME=Lieu ONCHANGE=\"ChangeBatiment(this.selectedIndex,this.form);\">";
echo "</SELECT>";
echo "<TD">";
echo "<TD>Batiment";
echo "<TD>";
echo "<SELECT NAME=Batiment ONCHANGE=\"ChangeStructure(this.form.Lieu.selectedIndex,this.selectedIndex,this.form);\">";
echo "</SELECT>";
echo "</TR>";
echo "<TR>";
echo "<TD>Structure";
echo "<TD>";
echo "<SELECT NAME=Structure ONCHANGE=\"ChangeService(this.form.Lieu.selectedIndex,this.form.Batiment.selectedIndex,this.selectedIndex,this.form);\">";
echo "</SELECT>";
echo "<TD>";
echo "<TD>Service";
echo "<TD>";
echo "<SELECT NAME=Service>";
echo "</SELECT>";
echo "</TR>";
echo "<TR>";
echo "<TR>";
echo "<TD colspan=\"2\" ALIGN=center>";
echo "<INPUT TYPE=SUBMIT VALUE=\"Rechercher\">";
echo "<TD>";
echo "<TD colspan=\"2\" ALIGN=center>";
echo "<INPUT TYPE=RESET VALUE=\"Remise à blanc\" ONCLICK=\"location.href='test.php?Lieu=&Batiment=&Structure=&Service=&SousService='\">";
echo "</TR>";
echo "</TABLE>";
echo "</FORM>";
?>
<SCRIPT>
RempliLieu(document.all.multirecherche);
ChangeBatiment(0,document.all.multirecherche);
ChangeStructure(0,0,document.all.multirecherche);
ChangeService(0,0,0,document.all.multirecherche);
</SCRIPT>