Listes dynamiques - problème

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Listes dynamiques - problème

par Cyrano » 25 sept. 2005, 09:18

Je ne suis pas un amateur très averti du JavaScript en général, mais je peux te renvoyer vers un tuto où tu as toutes les chances de trouver ta réponse.

Listes dynamiques - problème

par tintinole » 25 sept. 2005, 08:00

Oui j'ai regardé le code c'est super mais mon problème est que je veux utiliser 4 champs select dynamiques.
De plus ce qui m'intéresse ici est de savoir ce qui cloche dans mon source, trouver l'erreur !!

par Cyrano » 24 sept. 2005, 18:19

Es-tu alé jeter un coup d'oeil sur un tuto à propos des listes déroulantes dynamiques ?

Listes dynamiques - problème

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>