par
tintinole » 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
<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>
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
[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>[/php]