Comment supprimer un formulaire crée

Résolu
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   -  
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour bonjour,

J'ai mon code


<script type="text/Javascript">
 
 function auto()
 {
 document.getElementById('formSelectAuto').style.display = 'block';		
 document.getElementById('formSelectAuto').style.visibility = 'visible';
		document.getElementById('formSelectMan').style.display = 'none';
		 
		
 }
 
 function manuel()
 {
 document.getElementById('formSelectAuto').style.display = 'none';
		document.getElementById('formSelectMan').style.display = 'block';		
 document.getElementById('formSelectMan').style.visibility = 'visible';

 }
	
	function verif()
	{
		var expr = /^(((22[4-9]|23[0-9])\.)((25[0-4]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])\.)((25[0-4]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.)((25[0-4]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9]))$)/;
		var chaine = document.getElementById('adrMan').value ; 
		if(!expr.exec(chaine))
			{
			alert('adresse non valide : sélectionnez une adresse entre 224.0.1.0 et 239.254.254.254');
 			champ.focus();
			}
			else
			{alert('adresse valide')}
	}
 
 function MPTS()
 {
 document.getElementById('ajt0').style.display = 'block';
 document.getElementById('ajt0').style.visibility = 'visible';
 document.getElementById('formulaires').style.visibility = 'visible';
		document.getElementById('supr0').style.display = 'block';
		document.getElementById('supr0').style.visibility = 'visible';
 }
 
 function SPTS()
 {
 document.getElementById('ajt0').style.display = 'none';
 document.getElementById('ajt0').style.visibility = 'hidden';
 document.getElementById('formulaires').style.visibility = 'hidden';
		document.getElementById('supr0').style.display = 'none';
		document.getElementById('supr0').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);
		//formHTML = formHTML.replace(/supr0/g, 'supFormRef' + nbFormulaires);
		//formHTML = formHTML.replace(/ajout0/g, 'ajout' + nbFormulaires);
 
		//document.getElementById('supFormRef' ).style.visibility='visible';
		document.getElementById('supr0' ).style.display='block';
 document.getElementById('formulaires').innerHTML += formHTML;
 
 nbFormulaires++;
 }
	
</script>
<body>
<form id="formInsert" name="formInsert" method="post" action="">
	<div id="formListDeroul">
		<label>
		<select name="listDerou" size="1" id="select" >
			<option value="select">------Selectionner------</option>
			<option value="auto" id="auto" onclick="auto()" >Auto</option>
			<option value="manuel" onclick="manuel()">Manuel</option>
		</select>
		</label>
	</div>
 <br />
	<div id="formSelectAuto" style="display:none">
		Permanent <input type="radio" name="selectAuto" value="permanent" class="OPTION" />
	<br>
		Temporaire <input type="radio" name="selectAuto" value="temporaire" class="OPTION" />
		<input name="adrAuto" type="text" id="adrAuto" value="<?php
										include("connect.php");
										$ip = "224.0.1.0";
										if(Connecter())
										{
											$MonSQL= "SELECT * FROM information ORDER BY Multicast";
											$CurseurMulticast = mysql_query($MonSQL);
											$UnMulticast = GetLigne($CurseurMulticast);
											while($UnMulticast)
											{
												$suivante = long2ip(ip2long($ip)+1);
												if($UnMulticast["Multicast"]==$ip)
												{
													$ip=$suivante;
												}
												$UnMulticast = GetLigne($CurseurMulticast);
											}
											echo $ip;
											//return $ip;
										}?>" size="30" />
	<br />
 </div>
 
	<div id="formSelectMan" style="display:none">
		<input name="adrMan" type="text" id="adrMan" value="Entrez l'adresse" size="15" />
 <input name="vue" type="button" value="Vérifier" onclick="verif()" />
	</div>
	<br />
	<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()">

	<div id="formulaireReference">
		<br><label> Chaine <input type="text" name="chaine0" size="20" id="chaine"/> </label>
		<br />
 <LABEL>Codage : </LABEL>
			MPG4 <input type="radio" name="codage0" value="mpg4" class="OPTION" />
			MPEG2 <input type="radio" name="codage0" value="mpeg2" class="OPTION" >
		<br />
 <LABEL>Définition : </LABEL>
			SD <input type="radio" name="def0" value="SD" class="OPTION" />
			HD <input type="radio" name="def0" value="HD" class="OPTION" >
		<br />
 <LABEL>Systeme : </LABEL>
			PAL <input type="radio" name="syst0" value="PAL" class="OPTION" />
			NTSC <input type="radio" name="syst0" value="NTSC" class="OPTION" >
		<br>
 
</div>
	<div id="formulaires"></div>

 <input type="button" id="ajt0" name="ajout0" value="ajouter" style="display:none" onclick="javascript:AjouterFormulaire()" >
 	<input type="button" id="supr0" name="supr0" value="Supprimer" style="display:none" >
</form>
<input type="submit" id="Soumettre" name="Soumettre" value="Soumettre" />
</body>



et avec mon bouton supprimer, j'aurais voulu pouvoir supprimer un formulaire que je viens de créer (avec la fonction ajout formulaire après avoir appuyer sur le bouton ajouter), je n'arrive pas à trouver de fonction delete, et visuellement, je trouve pas comment faire.

on m'avait donné l'idée :

<input type="button" id="supr0" name="supr0" value="Supprimer" style="display:none" onclick="document.getElementById('formulaires').innerHTML = ''" >



seulement, quand je clique sur supprimer, celà me supprime TOUS les nouveaux formulaires, et ce n'est pas ce que je recherche

Si quelqu'un peut m'apporter de l'aide, ce serait avec grand plaisir.

Merci d'avance
A voir également:

13 réponses

kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Bonjour,

Effectivement la solution que l'on t'as déjà donné (innerHTML = '') est la bonne, la plus efficace et surtout la plus simple à mettre en place.
Reste maintenant à l'utiliser correctement selon ton besoin.

Dans ta page tu as plusieurs formulaires, si tu veux pouvoir les supprimer un à un (et pas tous en même temps) rien de plus simple, il suffit que tu ajoute ceux-ci dans des div indépendantes les unes des autres (dont l'identifiant sera numéro puisque tu as un ajout dynamique des formulaires dans ta page).
Il faudra également trouver un système pour pouvoir supprimer l'un de ces formulaires à la fois. La meilleure chose pour commencer je pense est d'intégrer le bouton delete dans chaque formulaire créé de manière à rattacher le bouton au formulaire à supprimer.

Tu vois ce que je veux dire ? L'explication est globale, à toi d'implémenter ça avec ton code et ta gestion existante, je ne peux pas mettre le nez dans ton code par manque de temps (suis au travail) donc bonne chance :)
1
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
D'accord, merci beaucoup, ais oui oui je vais chercher déjà avec ce que j'ai. Et un autre truc aussi, mon bouton ajouter, ajoute bien de nouveaux formulaire, on rempli le premier, on en ajoute un autre, on rempli le deuxième on en ajoute un autre, ça ajoute bien un autre formulaire, mais ça efface aussi les données du deuxièmes formulaire, je pense que c'est encore un soucis de div... Et donc, si je crée des nouvelles div à chaque nouveaux formulaires, les données ne s'effaceront pas. vrai ou faux???

Merci encore

Et bon appétit pour dans 30min ;)
1
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Ca dépends ton problème peut venir de plusieurs endroits.

Est ce que l'ajout est bien dynamique (pas de rafraichissement de la page) ? Si oui alors effectivement c'est certainement du au fait que tu met tout dans la même div.
Si ta page est raffraichie à chaque fois que tu ajoute un formulaire, si tu perds tes données c'est parce qu'elle ne sont pas transmise à ta page lors du rafraichissement, ou alors parce que tu ne les affiche pas suite au rafraichissement.

Sinon, voici un petit exemple que tu peux copier / coller chez toi et exécuter puis voir son fonctionnement. Cette page te permet d'ajouter / supprimer des formulaires à volonté sans rafraichir ta page.
Deux fichiers : la page en question, que l'on nommera 'forms.php' et dont voici le code :
<?php
include "forms.js";
?>
<body>
	<center>
		<BR>Interface d'ajout dynamique de formulaire
		<BR><input type="button" value="Ajouter un formulaire" onclick="addForm()"/>
	</center>
	
	<div id="formulaires">
	</div>
</body>


Et au même endroit dans ton arborescence que cette page, créer le fichier de code javascript 'forms.js' avec le code suivant :
<script language="javascript">

/* --- Global vars for number of form to add */
var numForm = 1;
/* --- Global var for name of the global div that will regroup all forms of current page */
var contentDivName = "formulaires";


/* Main function to add a new form in the content page */
function addForm (){
	// --- Retrieve content of div 'formulaire'
	var content = document.getElementById(contentDivName).innerHTML;
	// --- Get content of new form
	var newFormContent = buildNewForm();
	// --- Set the new content of the main div 'formulaire'
	document.getElementById(contentDivName).innerHTML = content + newFormContent;
}

/* Function to build a simple form with an input text and a delete buton */
function buildNewForm (){
	var contentForm = "";
	
	contentForm += "<div id='form"+numForm+"'>";
	contentForm += "<form>";
	contentForm += "<input type='text' value='coucou"+numForm+"'/>";
	contentForm += "<input type='button' value='delete' onclick='delForm("+numForm+")'/>";
	contentForm += "</form>";
	contentForm += "</div>";
	
	// --- Increase form counter
	numForm++;
	
	return contentForm;
}

/* Function to remove a form from the page */
function delForm ( formNumber ){
	// --- Try to retrieve the form from the page
	if ( document.getElementById("form"+formNumber) ){
		// --- Reset the content of the div
		document.getElementById("form"+formNumber).innerHTML = '';
	}
}

</script>


Voilà, j'ai testé sous FF3 et tout fonctionne correctement tu ne devrais pas avoir de bug.

Si tu as des questions je serai disponible après manger.

0
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
Super, merci!!!!!!!!

J'ai testé ton code, c'est exactement ce que je veux... Je vais maintenant l'incorporer à mon code, et je te dirais si c'est bon, mais normalement oui, sauf si je suis vraiment trop nuuuuuuuuuuulle!!!

Merci
1
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
Voilà, les tests sont faits et merci pour l'aide. J'arrive bien à supprimer les bons formulaires, ceci dit, il y a toujours le soucis de quand j'ajoute, les données remplis dans les formulaires précédents s'effacent...

Donc voilà, je sais pas trop.

MErci en tt cas
1
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Ok, inspire toi de ça, encore plus compact, simple et rapide :

Fichier 'forms.php' toujours le même à peu de chose prêt:
<?php
include "forms.js";
?>
<body>
	<center>
		<BR>Interface d'ajout dynamique de formulaire
		<BR><input type="button" value="Ajouter un formulaire" onclick="add()"/>
	</center>
	
	<div id="formulaires">
	</div>
</body>


Fichier 'forms.js' :
<script language="javascript">
          function add(){
             /* Retrieve fieldSet from the page */
             var conteneur   = document.getElementById(contentDivName);
             /* Create elements that we need into the new form to add  */
             var undiv      = document.createElement('div');
             var fich        = document.createElement('input');
             var but		= document.createElement('input');

             fich.type   = 'text';
             but.type   = 'button';
             but.value  = 'delete form';

             // Implement delete function on the button
             but.onclick = function(){
                // Element to remove
                lediv      = this.parentNode;
                // Element parent
                lefieldset   = lediv.parentNode;
                // Remove the element
                lefieldset.removeChild(lediv);
             }

             /* Append elements (new form) into the page */
             undiv.appendChild(fich);
             undiv.appendChild(but);
             conteneur.appendChild(undiv);
          }
</script>


Voilà, j'ai testé, les valeurs ne disparaissent plus avec cette façon de faire. A toi d'adapter la création du formulaire avec les éléments dont tu as besoin :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
Merci pour la réponse, j'y avais penser à ce système, mais j'ai encore du mal à le visualiser.
Si je comprend bien, il faut que je mette le bouton supprimer déjà dans le formulaire, ça ok. Il faut qu'à chaque fois que j'ajoute un nouveau formulaire, il faut créer une div dans laquelle le formulaire sera crée. Récupérer le numéro du bouton, pour supprimer le formulaire correspondant.
C'était une idée que j'avais eu aussi, mais que j'ai du mal à mettre en place. Crée des div dynamiquement ... argh.
Je ne suis pas calé en informatique, enfin, du moins, j'ai beaucoup de lacune, mais je sais ce que je veux au final, juste un soucis de visualisation du code.

Donc si tu as le temps de me mettre un peu plus en détail sur la piste. Bien que je ne te demande pas de faire mon boulot non plus, mais me parler de fonction et de boucle, et je rechercherais par la suite.

Merci d'avance et merci déjà pour ton aide.
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Ok, je vais développer un petit exemple en local chez moi et quand j'ai fini je le poste pour illustrer tout ça.
En attendant (car ça va dépendre de mon travail perso à coté) tu peux toujours chercher de ton coté :) (rien de mieux pour apprendre que se creuser la tête)

(dans 30 minutes pause miam donc ce sera pour cet aprem)
0
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
Recoucou,

Là, j'avoue qu'avec ton deuxième fichier, j'ai un peu de mal. Je le test, mais il se passe rien, en même temps, si j'ai bien compris, il n'y a pas de conteneur, donc je pense que c'est normal, après, savoir qu'est-ce qu'il faut associer avec quoi? c'est autre chose. Mais merci encore, tu m'as vraiment bien aidé.
Reste plus qu'à comprendre...

Encore merci...
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Ha oui pardon c'est normal que ça ne fonctionne pas j'ai fait une erreur de copier / coller, dans le fichier 'forms.js', juste avant la déclaration de la fonction add() il faut que tu déclare la variable globale 'contentDivName' comme ceci :

var contentDivName = "formulaires";


Et ça devrait fonctionner correctement.
0
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
Ah, en effet, ça marche bien mieux... bon, incorporation dans mon code ...
Merci encore!!!
0
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
Bonjour et bon début de semaine,

Arf, j'ai encore du mal à créer mon formulaire
Pour le moment c'est
var contentDivName = "formulaires";
          function add(){
             /* Retrieve fieldSet from the page */
             var conteneur   = document.getElementById(contentDivName);
             /* Create elements that we need into the new form to add  */
             var undiv      = document.createElement('div');
			 var MaChaine = document.createTextNode("Chaine : ");
			 var chaine        = document.createElement('input');
			 
			 var MonCodage = document.createTextNode("Codage : ");
			 var MonMpg4 = document.createTextNode("MPG4 ");
			 var mpg4        = document.createElement('input');
			 var MonMpeg2 = document.createTextNode("MPEG2 ");
			 var mpeg2 = document.createElement('input');
			 
			 var MaDefinition = document.createTextNode("Définition : ");
			 var MaSd= document.createTextNode("SD ");
			 var sd        = document.createElement('input');
			 var MaHd = document.createTextNode("HD ");
			 var hd = document.createElement('input');
			 
			 var MonSysteme = document.createTextNode("Systeme : ");
			 var MonPal = document.createTextNode("PAL ");
			 var pal        = document.createElement('input');
			 var MonNTSC = document.createTextNode("NTSC ");
			 var ntsc = document.createElement('input');
			 
             var but		= document.createElement('input');
			 
             chaine.type   = 'text';
			 mpg4.type   = 'radio';
			 mpg4.name = 'chaine0';
			 mpeg2.type   = 'radio';
			 mpeg2.name = 'chaine0';
			 sd.type   = 'radio';
			 sd.name = 'def0';
			 hd.type   = 'radio';
			 hd.name = 'def0';
			 pal.type   = 'radio';
			 pal.name = 'sys0';
			 ntsc.type   = 'radio';
			 ntsc.name = 'sys0';
            but.type   = 'button';
             but.value  = 'delete form';

             // Implement delete function on the button
             but.onclick = function(){
                // Element to remove
                lediv      = this.parentNode;
                // Element parent
                lefieldset   = lediv.parentNode;
                // Remove the element
                lefieldset.removeChild(lediv);
             }

             /* Append elements (new form) into the page */
			 undiv.appendChild(MaChaine);
			 undiv.appendChild(chaine);
			 
			 undiv.appendChild(MonCodage);
			 undiv.appendChild(MonMpg4);
			 undiv.appendChild(mpg4);
			 undiv.appendChild(MonMpeg2);
			 undiv.appendChild(mpeg2);
			 undiv.appendChild(MaDefinition);
			 undiv.appendChild(MaSd); 
			 undiv.appendChild(sd );
			 undiv.appendChild(MaHd);
			 undiv.appendChild(hd);
			 undiv.appendChild(MonSysteme);
			 undiv.appendChild(MonPal);
			 undiv.appendChild(pal );
			 undiv.appendChild(MonNTSC);
			 undiv.appendChild(ntsc);
             undiv.appendChild(but);
             conteneur.appendChild(undiv);
			 
			}

Du coup, mon formulaire se fait sur une seule ligne, et je ne ois pas comment le mettre comme

chaine :
Codage :
Définition :
Systeme :

Donc avec des <br>, je ne sais pas où les placer.......Merci d'avance pour m'aider à situer ces br!!!!
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Salut,

Si tu mets tes BR juste avant les textes je pense que ça devrait fonctionner correctement.
Exemple:
var MaChaine = document.createTextNode("<BR>Chaine : ");


0
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
J'ai essayé, mais ça ne me fais pas sauté de ligne, ça m'affiche :

<br>Chaine :

Donc arf, c'est pas ça!!!!!!!!!!!!!!!!!!!! niarf niarf niarf
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Ok, il suffit de créer un élément BR et de l'ajouter à chaque fois là où tu souhaite avoir un retour à la ligne, exemple :
        var undiv      = document.createElement('div');
        var sep = document.createElement('br');
	var MaChaine = document.createTextNode("Chaine : ");
        var chaine        = document.createElement('input');
        ...

	undiv.appendChild(MaChaine);
	undiv.appendChild(sep);
	undiv.appendChild(chaine);



J'ai testé et ça fonctionne.
0
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
Y'a pas plus pratique??? parce qu'il faut faire un

var sep1 = document.createElement('br');
var sep2 = .....
var sep3 = .....

Autant de nouvelles variables que de sauts de ligne.
Parce que j'ai testé de mettre une variable et de l'appeller, mais ce n'est qu'au dernier appel où elle effectue le saut de ligne.
Cette solution me convient, mais au cas où il y aurait plus simple...
0
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
ah noooooooooooooooooooon, ça finira donc pas..............

crotte flute zut...

j'ai mes boutons radios, si au deuxième formulaire, je sélectionne par exemple dans codage MPG4 et qu'au troisième formulaire je veux selectionne MPG4 ou MPEG2 et bien je peux pas

                 mpg4.type   = 'radio';
		 mpg4.name = 'chaine0';
		 mpeg2.type   = 'radio';
		 mpeg2.name = 'chaine0';



c'est à cause de ça...je ne peux sélectionne qu'un seul sur toute le page.........................comment faire pour éviter ça, pour pouvoir sélectionner un seul choix pour chaque formulaire???

Sachant qu'après, les données du formulaire doivent pouvoir être mis dans une base de données.
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Re,

Donc pour répondre à ta première réponse, je pense que tu peux te permettre de ne créer qu'un seul objet et de l'ajouter là où tu le souhaite à chaque fois (vu que c'est un objet de mise en page et non de données, ça ne devrait pas gêner de l'avoir plusieurs fois dans ta page)

Pour ce qui est du problème des champs, effectivement, il va falloir remettre en place un système de numérotation des champs (pour les noms).

Il faut donc faire un mixte de ce que je t'ai donné auparavant de manière à avoir dans le nom de chaque champ de données, le numéro du formulaire. Grosso modo voilà ce que tu devrais avoir :

La variable globale 'numForm' qui compte le nombre de formulaire dans ta page :

/* --- Global vars for number of form to add */
var numForm = 0;
/* --- Global var for name of the global div that will regroup all forms of current page */
var contentDivName = "formulaires";


Et la fonction d'ajout :

          function ajouter(){
             /* Retrieve fieldSet from the page */
             var conteneur   = document.getElementById(contentDivName);
             /* Create elements that we need into the new form to add  */
             var undiv      = document.createElement('div');
             var sep = document.createElement('br');
			 var MaChaine = document.createTextNode("Chaine : ");
			 var chaine        = document.createElement('input');
			 
			 var MonCodage = document.createTextNode("Codage : ");
			 var MonMpg4 = document.createTextNode("MPG4 ");
			 var mpg4        = document.createElement('input');
			 var MonMpeg2 = document.createTextNode("MPEG2 ");
			 var mpeg2 = document.createElement('input');
			 
			 var MaDefinition = document.createTextNode("Définition : ");
			 var MaSd= document.createTextNode("SD ");
			 var sd        = document.createElement('input');
			 var MaHd = document.createTextNode("HD ");
			 var hd = document.createElement('input');
			 
			 var MonSysteme = document.createTextNode("Systeme : ");
			 var MonPal = document.createTextNode("PAL ");
			 var pal        = document.createElement('input');
			 var MonNTSC = document.createTextNode("NTSC ");
			 var ntsc = document.createElement('input');
			 
             var but		= document.createElement('input');
			 
             chaine.type   = 'text';
			 mpg4.type   = 'radio';
			 mpg4.name = 'chaine'+numForm;
			 mpeg2.type   = 'radio';
			 mpeg2.name = 'chaine'+numForm;
			 sd.type   = 'radio';
			 sd.name = 'def'+numForm;
			 hd.type   = 'radio';
			 hd.name = 'def'+numForm;
			 pal.type   = 'radio';
			 pal.name = 'sys'+numForm;
			 ntsc.type   = 'radio';
			 ntsc.name = 'sys'+numForm;
            but.type   = 'button';
             but.value  = 'delete form';

             // Implement delete function on the button
             but.onclick = function(){
                // Element to remove
                lediv      = this.parentNode;
                // Element parent
                lefieldset   = lediv.parentNode;
                // Remove the element
                lefieldset.removeChild(lediv);
             }

             /* Append elements (new form) into the page */
			 undiv.appendChild(MaChaine);
			 undiv.appendChild(chaine);
			 undiv.appendChild(sep);
			 
			 undiv.appendChild(MonCodage);
			 undiv.appendChild(MonMpg4);
			 undiv.appendChild(mpg4);
			 undiv.appendChild(sep);
			 undiv.appendChild(MonMpeg2);
			 undiv.appendChild(mpeg2);
			 undiv.appendChild(MaDefinition);
			 undiv.appendChild(sep);
			 undiv.appendChild(MaSd); 
			 undiv.appendChild(sd );
			 undiv.appendChild(MaHd);
			 undiv.appendChild(hd);
			 undiv.appendChild(MonSysteme);
			 undiv.appendChild(MonPal);
			 undiv.appendChild(pal );
			 undiv.appendChild(MonNTSC);
			 undiv.appendChild(ntsc);
             undiv.appendChild(but);
             conteneur.appendChild(undiv);
			 
			 numForm++;
			 
			}


Dans cette fonction, le nommage de tes champs est dépendant du numéro de formulaire, tu ne devrais donc plus avoir de souci de champ avec le même nom dans ta page, et donc une mauvaise prise en compte des données.
Je n'ai pas testé mais logiquement ça devrait fonctionner.

La seule petite difficulté sera pour la suite, pour récupérer tes données : comme le numéro de formulaire s'incrémente à chaque fois que tu en créé un, il faudra, lorsque tu récupère tes données, ne pas tenir de ce numéro de version puisque celui-ci ne se suivra pas. Je veux dire que comme tu peux supprimer un formulaire, lorsque ton utilisateur envoi ses données, il y a aura peut être trois formulaire mais avec des numéros qui ne se suivent pas forcément (0, 2 et 3 par exemple si le formulaire 1 a été supprimé entre temps)
0
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
Merci pour la solution ...+numForm, pour undiv.appendChild(sep); on ne peut vraiment l'utiliser qu'une fois... J'ai essayer d'en mettre qu'un seul et l'appeller à chaque demande, et c'était à la derniere demande qu'il effectué mon saut de ligne, ptèt un rapport avec appendChild, ou une boucle qui récupère le dernier élément...

Mais c'est pas grave, je vais garder les différents sep : sep1, sep2, sep3, sep4, sep5.
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Oui, ou plutot que de déclarer des variables à chaque fois pour tes BR, "instancie" les directement lorsque tu les ajoute à ton composant :
	undiv.appendChild( document.createElement('br') );


Ca évitera de déclarer plein de variable pour rien, et ton code gagnera en visibilité.
0
MiWi86-33 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   9
 
Bonjour,

Merci pour l'aide apporté, le sujet est résolu, car j'ai pu supprimer le formulaire... maintenant pour les rentrer dans une base de données, je pense que je vais utilisé la boucle, tant que numForm != Null... mais bon après, c'est un autre sujet.

Merci beaucoup
0