Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire Cours JavaScript, FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 03/07/2009, 12h30   #1
Membre Confirmé
 
Date d'inscription: février 2009
Localisation: Paris
Messages: 239
Par défaut suppression groupe de ligne dans formulaire dynamique

Bonjour,

j'ai créé un formulaire dynamique ou je peux ajouter des lignes et les supprimer dynamiquement.

cependant, j'ai une catégorie que je vais appeler 'locuteurs' qui regroupe environ une dizaine de ligne.
je peux ajouter come je le souhaite ces locuteurs et donc j'ai un ajout de plusieurs lignes à chaque fois.

je voudrai pouvoir supprimer ces groupes de lignes simultanément avec javascript.

voici un bout de mon formulaire

form.php
Code :
 
<tbody id="loc">
				<tr>
					<td align="center"><b><i>Informations sur les locuteurs</i></b></td>
					<td bgcolor="#006699"></td>
				</tr>
				<tr>
					<td><b><i>Locuteur 1</i></b></td>
					<td bgcolor="#006699"></td>
 
				</tr>
				<tr>
					<td>Identifiant :</td>
					<td><input type="text" size="50" name="id[]"
						onKeyUp="javascript:couleur(this);"></td>
 
				</tr>
				<tr>
					<td>Locuteur principal :</td>
					<td><input type="checkbox" name="Loc_principal[]" value="Oui" />Oui <input
						type="checkbox" name="Loc_principal[]" value="Non" />Non</td>
 
				</tr>
				
				<tr>
					<td>Age :</td>
					<td><input type="text" size="50" name="age[]"
						onKeyUp="javascript:couleur(this);" onblur="verifAge(this)"></td>
 
				</tr>
</tbody>
<tr>
				<td><input value="Ajouter un locuteur" id="idBouton" type="button"
					onclick="AddRow();" /></td>
			</tr>
 
 
le js qui permet d'ajouter des locuteurs
Code :
var num = 1;
//// AJOUT LOCUTEUR
function AddRow() {
	num++;
	var newRow = document.getElementById('loc').insertRow(-1);
	var newCell = newRow.insertCell(0);
	newCell.innerHTML = '<b><i>' + 'Locuteur' + num + '</i></b>';
	newCell = newRow.insertCell(1);
	newCell.innerHTML = '';
 
	var newRow1 = document.getElementById('loc').insertRow(-1);
	var newCell1 = newRow1.insertCell(0);
	newCell1.innerHTML = 'Identifiant : ';
	newCell1 = newRow1.insertCell(1);
	newCell1.innerHTML = '<input type="text" size="50" name="id[]" onKeyUp="javascript:couleur(this);">';
 
	var newRow2 = document.getElementById('loc').insertRow(-1);
	var newCell2 = newRow2.insertCell(0);
	newCell2.innerHTML = 'Locuteur principal : ';
	newCell2 = newRow2.insertCell(1);
	newCell2.innerHTML = '<input type="checkbox" name="Loc_principal[]" value="Oui" />Oui <input type="checkbox" name="Loc_principal[]" value="Non" />Non';
 
	var newRow3 = document.getElementById('loc').insertRow(-1);
	var newCell3 = newRow3.insertCell(0);
	newCell3.innerHTML = 'Age : ';
	newCell3 = newRow3.insertCell(1);
	newCell3.innerHTML = '<input type="text" size="50" name="age[]" onKeyUp="javascript:couleur(this);" onblur="verifAge(this)">';
 
}
 
voici un script javascript qui ne permet de supprimer qu'une ligne pour le moment et sur lequel j'aimerai me baser

Code :
 
function suppression(ligneLocuteur) {
 
	
	var nb = document.getElementById('loc').rows.length;
	 document.getElementById('loc').deleteRow(-1);
 
	
 
}
cette fonction n'est bien entendue pas adapté et je voudrai des idées pour le faire le plus économiquement possible si c'est permi.

merci a vous.
knebhi est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 12h35   #2
Modérateur
 
Date d'inscription: janvier 2007
Messages: 7 488
Par défaut

Bonjour,
Citation:
Envoyé par knebhi Voir le message
cette fonction n'est bien entendue pas adapté et je voudrai des idées pour le faire le plus économiquement possible si c'est permi.
Je comprends pas bien ton problème

Tu l'as fait fonctionner pour une ligne => il te suffit de l'appeler 10 fois pour supprimer 10 lignes, non ?

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 12h41   #3
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Date d'inscription: septembre 2007
Localisation: Madagascar
Messages: 2 014
Par défaut

Salut,
Citation:
newCell1.innerHTML = '<input type="text" size="50" name="id[]" onKeyUp="javascript:couleur(this);">';
Créer un élement avec innerHTML est à bannir -->
http://javascript.developpez.com/faq...DOM#DOMajouter
Citation:
suppression(ligneLocuteur)
La paramètre ligneLocuteur n'est pas utilisé dans la fonction.
Tu peux supprimer ces lignes en récupérant ces id ou name et faire une boucle .
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 15h27   #4
Membre Confirmé
 
Date d'inscription: février 2009
Localisation: Paris
Messages: 239
Par défaut

merci a tous

alors en fait j'ai créer un bouton supprimer qui pointe vers la fonction supprimerLocuteur

Code :
//creation bouton supprimer
	var bouton = document.createElement("input");
	bouton.type = "button";
	bouton.value = "Supprimer";
	bouton.onclick = function() {
		suppressionLocuteur()
	};
	newCell.appendChild(bouton);

ensuite j'ai fait une boucle for dans le supprimer qui m'indique le nombre de ligne que je veux supprimer d'un coup

Code :
function suppressionLocuteur() {
 
	num--;
	var nb = document.getElementById('loc').rows.length;
	for(i=0;i<17;i++){ 
	document.getElementById('loc').deleteRow(-1);
	 
	}
à notre que j'ai décrémenter le nombre de locuteur dans la fonction suppression afin de supprimer et de rajouter eventuellement la ligne correcte.
knebhi est déconnecté   Envoyer un message privé Réponse avec citation
NEWS JAVASCRIPTF.A.Q JSTUTORIELS JSSOURCES JSLIVRES JS

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 23h19.


Vos questions techniques : forum d'entraide JavaScript - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.