Passage de paramètres entre formulaires
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 :
Code:
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> |
et le formulaire de la pop up :
Code:
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> |
Tout petit coup de main serait infiniment apprécié...