formulaire dynamique un chouilla complex
	
	
		bon voila, je suis entrain de dvp un moteur de recherche sur une base de donnee de personnel. et donc j ai besoin de mettre en place un systeme de formulaire afin que l administration puisse faire bien leur travail en faisant de jolie requete.
 http://kef1.free.fr/form.gif
 donc voila pour une ligne j utilise un petit script qui permet d'afficher les valeurs qui vont avec la recherche souhaite.
 
 
	Citation:
	
		
		
			 var valeurs = new Array();
             valeurs[0] = new Array();
             valeurs[1] = new Array("dr.", "mr.", "prof.","ms.","eng.");
             valeurs[2] = new Array("1", "2", "3","5","6","9","13","15");
 
             
             function verifChoixValue_0()
{ if (document.formul.choixType_0.value == "0"){ alert('Vous devez tout d\'abord choisir un type de recherche!'); document.formul.choixType_0.focus(); } }
 
             function remplirValeurs_0(code)
               {
               var lesValeurs = valeurs[code];
               if (code>0){
                 document.formul.choixValue_0.options.length = lesValeurs.length;
for (i=0; i<lesValeurs.length; i++){ document.formul.choixValue_0.options[i].value = lesValeurs[i]; document.formul.choixValue_0.options[i].text = lesValeurs[i]; }
                     document.formul.choixValue_0.options.selectedIndex = 0;
}else{ document.formul.choixValue_0.options.length = 1; document.formul.choixValue_0.options[0].value = 0; document.formul.choixValue_0.options[0].text = "-- choisissez une valeur"; }
               }
			
		
	
  bon ca marche tres bien pour une ligne.
Par la suite une personne peut avoir besoin de specifier plusieurs champ ainsi j ai utiliser un autre bou de script qui permet lui d ajouter et de suprimer des ligne avec appendchild et removechild
 
 
	Citation:
	
		
		
			   /* initialise le script */
             function dtableInit() {
                 var table = document.getElementsByTagName('TABLE');
                 for ( var i = 0; i < table.length; i++ ) {
                     // on récupère tous les tableaux dynamiques
                     if ( table[i].className == 'dTable' ) {
                         
                         var tbody = table[i].tBodies[0];
                         var newTr = tbody.rows[0].cloneNode(true);
                         
                         // on masque la première ligne du tbody (la ligne de reference)
                         tbody.rows[0].style.visibility = "hidden";
                         
                         // on en ajoute une
                         tbody.appendChild(newTr);
                     }
                 }
             }
             
             /* trouve le tag "parentTagName" parent de "element" */
             function getParent(element, parentTagName) {
                 if ( ! element )return null;
else if ( element.nodeType == 1 && element.tagName.toLowerCase() == parentTagName.toLowerCase() )return element;
                 else return getParent(element.parentNode, parentTagName);
             }
             /* ajoute une ligne */
             function addLigne(link) {
                 // 1. récuperer le node "TABLE" à manipuler
                 var td = link.parentNode;
                 var table = getParent(td,'TABLE');
                 
                 // 2. on va manipuler le TBODY
                 var tbody = table.tBodies[0];
                 
                 // 3. on clone la ligne de reference
                 var newTr = tbody.rows[0].cloneNode(true);
                 tbody.appendChild(newTr);
 
 if ( document.all )
                     newTr.style.visibility = "visible"; // pour IE
                 else
                     newTr.style.visibility = "visible"; // pour Gecko
                     
                 //on incremente le compteur de ligne
                 MaVariable++;
             }
             /* supprimer une ligne */
             function delLigne(link) {
                 // 1. récuperer le node "TABLE" à manipuler
                 var td = link.parentNode;
                 var table = getParent(td, 'TABLE');
                 
                 // 2. récuperer le TBODY
                 var tbody = table.tBodies[0];
                 
                 // 3. Supprimer le TR
                 tbody.removeChild(getParent(td, 'TR'));
             }
			
		
	
  Voila donc ca aussi ca marche. Mais (ouai je fairai pas un post aussi gros si y avai pas de mais), effectivement ca m ajoute des lignes mais je ne voi pas vraiment comment assigner le 1 er script au ligne rajouter dans le second.
P.S. j a oublier de filer le code html :D
	Citation:
	
		
		
			<tr>
                                <td>
                                    <input type="radio" name="chx_0" value="OR" checked />OR
                                    <input type="radio" name="chx_0" value="AND" />AND
                                    <input type="radio" name="chx_0" value="NOT" />Not
                                </td>
                                <td>
                                    <select name="choixType_0" onChange="remplirValeurs_0(this.options[this.selectedIndex].value);">
                                        <option value="0" selected>-- choisissez un type de recherche</option>
                                        <option value="1">Title</option>
                                        <option value="2">Activitie</option>
                                    </select>
                                </td>
                                <td>
                                    <select name="choixValue_0" onFocus="verifChoixValue_0();">
                                        <option value="0" selected>-- choisissez une valeur</option>
                                    </select>
                                </td>
                                <td><a href="#" onclick="delLigne(this); return false;">Supp</a></td>
                            </tr>
			
		
	
 bon dans ce cas la ce n est que la ligne 0 mais j ai un script qui rename et change les onchange et onfocus pour chaque ligne ajouter