MiWi
Août 4, 2008, 2:21
21
oui oui
</head>
<script type="text/Javascript">
function MPTS()
{
document.getElementById('ajt').style.visibility = 'visible';
document.getElementById('formulaires').style.visibility = 'visible';
}
function SPTS()
{
document.getElementById('ajt').style.visibility = 'hidden';
document.getElementById('formulaires').style.visibility = 'hidden';
}
var nbFormulaires = 1
function AjouterFormulaire()
{
var formHTML = document.getElementById('formulaireReference').innerHTML;
formHTML = formHTML.replace(/chaine0/g, 'chaine' + nbFormulaires);
formHTML = formHTML.replace(/codage0/g, 'codage' + nbFormulaires);
formHTML = formHTML.replace(/def0/g, 'def' + nbFormulaires);
formHTML = formHTML.replace(/syst0/g, 'syst' + nbFormulaires);
document.getElementById('formulaires').innerHTML += formHTML;
nbFormulaires++;
}
</script>
<body>
Il ne faut pas que ton bouton “Ajouter” soit un bouton de soumission du formulaire, ou forcement ça envoie les données avant que le nouveau formulaire soit créé :neutre:
Remplace ton :
<input type="submit" id="ajt" name="ajout" value="ajouter" style="visibility:hidden" onclick="javascript:AjouterFormulaire()" >
par :
<input type="button" id="ajt" name="ajout" value="ajouter" style="visibility:hidden" onclick="javascript:AjouterFormulaire()" >
Et rajoute une bouton de soumission à la fin, genre :
<input type="submit" id="Soumettre" name="Soumettre" value="Soumettre">
MiWi
Août 4, 2008, 2:44
23
kookiz33_1_1:
Le formulaire “modèle” est dans la div “formulaireReference”. A toi de voir s’il doit s’afficher ou non. Le bouton “Ajouter” appelle la fonction Javascript “AjouterFormulaire()”. Celle-ci récupère le contenu de la div “formulaireReference”, et modifie les “name” de chaque élément du formulaire. Il copie enfin le code ainsi obtenu dans la div “formulaires” qui contiendra de fait les formulaires générés dynamiquement.
A la récupération des données, tu auras donc les données du formulaire de référence qui auront les noms “codage0”, “def0”, etc…, et les formulaires générés dynamiquement qui aurant les noms “codage1”, puis “codage2”, etc…
Il doit être possible de faire ça de manière plus “clean” en écrivant un code Javascript qui parcourt les éléments du formulaire et modifie dynamiquement leur propriété “name” (dans ma solution, tu seras obligé de modifier le code javascript à chaque fois que tu rajoutes un élément au formulaire), mais ça j’ai vraiment la flemme de te l’écrire
Je reviens dessus, lors de rentrer les données dans la base de données, ce sera name01,name02, name03 qu’il faudra que je mette en variable et à chaque fois que je régénère, ça repart à name 01?
name1, name2, name3…
Elle est en quelle langage la page qui reçoit les données ? PHP ? Si oui, fait un foreach sur la variable $_POST et tu comprendras tout de suite
MiWi
Août 4, 2008, 3:37
25
d’accord!!!
Merci beaucoup pour ton aide. Je pense que pour le moment, je vais pouvoir avancer, mais j’avoue que tu m’as bien aidé!!!
erki!
MiWi
Août 4, 2008, 5:07
26
Petite question en faite, il est bien possible de mettre un formulaire dans un autre non?
Si tu veux dire "imbriquer deux balises ", je doute que ce soit possible, et je ne vois pas tellement à quoi ça servirait…
MiWi
Août 5, 2008, 10:17
28
SI j’ai bien compris, lorsqu’on submit, cela valide le formulaire dans lequel il est, je reviens à mon exemple, quand on submit, ça renvoit au champ action du form. non?
Nan mais c’est qu’en faite, j’ai un autre formulaire à mettre
voilà le début du code
<form id="formInsert" name="formInsert" method="post" action="">
<label>
<select name="listDerou" size="1" id="select">
<option>Auto</option>
<option>Manuel</option>
</select>
</label>
<p>
<label> Port
<input name="port" type="text" id="port" value="" size="8" />
</label>
<p>
<LABEL>Type : </LABEL>
MPTS
<input type="radio" name="type" value="mpts" class="OPTION" onClick="javascript:MPTS()"/>
SPTS
<input type="radio" name="type" value="spts" class="OPTION" onClick="javascript:SPTS()">
<p>
<p>
<input type="button" id="ajt" name="ajout" value="ajouter" style="visibility:hidden" onclick="javascript:AjouterFormulaire()" >
</p>
</form>
Et selon si la personne à selectionné manuel ou auto dans la liste déroulante, j’affiche tel ou tel formulaire. c’est possible donc de faire plusieur formulaire ou alors, je mets tous en div dans le formulaire (enfin si ça a du sens…)