bonjour,
je débute totalement en JS qui reste encore un peu mystérieux pour moi, aussi je fais appel à votre indulgence
je cherche à créer 2 formulaires :
- un formulaire maitre, comprenant des lignes d'input non modifiables par l'utilisateur, et pour chaque ligne un bouton permettant d'ouvrir une pop up avec un second formulaire qui permet de choisir la valeur à compléter dans le champ maitre correspondant. L'utilisateur peut ajouter / modifier / supprimer les lignes.
- un formulaire esclave, ouvert par pop up,
Et ça ne marche pas.
Le code ci dessous fonctionne à moitié sous IE (la première modification d'une ligne fonctionne, pas les suivantes...) et pas du tout sous firefox.
Formulaire maitre :
et le formulaire de la pop up :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <html><head> <script language="JavaScript"> <!-- // ouvre une fenetre de selection pour editer une ligne du formulaire function ouvreFenetreSelection(identifiantligne) { var winconfig = "resizable=yes,toolbar=no,location=yes,scrollbars=yes,top=0,left=0,height=150,width=500"; top.DIALslave = window.open("testformulaireesclave.php","DIALslave",winconfig); top.DIALslave.document.getElementById('idligne').value=identifiantligne; top.DIALslave.document.forms['selectionligne'].code.focus(); } // ajoute une ligne au formulaire function ajouterLigne() { var nblignes; nblignes = parseInt(document.forms['tableau'].nblignes.value) + 1; document.forms['tableau'].nblignes.value = nblignes; document.getElementById('tableau').innerHTML=document.getElementById('tableau').innerHTML + 'Ligne : <input name="code'+nblignes+'" id="code'+nblignes+'" type="text" readonly="true"> <input type="button" name="cmd_ajout'+nblignes+'" value="Inserer nouvelle ligne" onClick="JavaScript:ouvreFenetreSelection('+nblignes+');"><input type="button" name="cmd_sup'+nblignes+'" value="Supprimer la ligne" onClick="JavaScript:supprimerLigne('+nblignes+');"></br>'+"\r\n"; } // ajoute une ligne au formulaire function supprimerLigne(identifiantLigne) { //todo; } // --> </script> </head> <body> <form id = "tableau" name="tableau"> <input type="hidden" name="nblignes" id="nblignes" value="1"> <input type="button" value="Ajouter ligne" onClick="ajouterLigne();"><br/> Ligne : <input name="code1" id="code1" type="text" readonly="true"> <input type="button" name="cmd_ajout1" value="Compléter la ligne" onClick="JavaScript:ouvreFenetreSelection(1);"><input type="button" name="cmd_sup1" value="Supprimer la ligne" onClick="JavaScript:supprimerLigne(1);"><br/> </form> </body> </html>
Tout petit coup de main serait infiniment apprécié...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <html><head> <script language="JavaScript"> <!-- emission de donnéées vers le formulaire maitre function initialize() { document.getElementById('lbl').innerHTML='Saisie de la ligne '+document.forms['selectionligne'].idligne.value; } function send_data() { var identifiantligne; identifiantligne = document.forms['selectionligne'].idligne.value; opener.document.getElementById('code'+identifiantligne).value = document.forms['selectionligne'].code.value; //opener=self; self.close(); } // --> </script> </head> <body onLoad="JavaScript:initialize();"> <b id="lbl"></b> <form name="selectionligne" id="selectionligne"> <input type="hidden" name="idligne" id="idligne" value="-1"> valeur de la ligne : <input type="text" name="code"> <input type="button" name="cmd_send" value="Mettre à jour" onClick="JavaScript:send_data();"> </form> </body> </html>
Partager