insertion multiple

  • Créateur du sujet Créateur du sujet kabeha
  • Date de début Date de début

kabeha

Membre expert
Club iGen
13 Mai 2002
1 323
54
61
Bourg en Bresse
Bonjour,

Je souhaiterais proposer à un utilisateur un formulaire d'insertion sous forme d'un tableau de x lignes, pour qu'il puisse avec un seul clic sur le bouton 'Submit' insérer plusieurs enregistrement dans une table.

La solution qu'on m'a suggérée est de faire autant d' INPUT INTO ma_table qu'il y a de lignes en nommant différemment chaque champ (avec un num <> par ex) pour chaque ligne.

Le pb est qu'avec 12 colonnes à renseigner, si je veux un tableau de 10 lignes, je trouve ça un peu lourd.

Il doit exister un moyen plus simple ?

Merci d'avance :zen:
 
Salut,
sauf erreur en nommant tes inputs leNom[], après avoir soumis ton formulaire tu pourras savoir combien d'input on été remplis avec count pour ensuite bouclé jusqu'au count pour faire uniquement les INSERT nécessaires.
 
Hello,

J'ai pas bien compris mais voilà un javascript que j'avais commencé et qui pourrait peut-être t'aider :

Bloc de code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<title></title>
		<style type="text/css">
			a {
				text-decoration: none;
			}
		</style>
		<script type="text/javascript">
			function addInput() {
				var myInputs = document.getElementById('myInputs'); //cadre contenant mes inputs
				var myInputNb = document.getElementById('totalColors').value; //nombre d'inputs
				myInputNb++; // +1
				document.getElementById('totalColors').value = myInputNb; //MAJ nombre d'inputs
				var newInput = document.createElement('input'); //nouvel input
				newInput.type = 'text'; //de type text
				newInput.name = 'color'+myInputNb; //on lui met un nom
				newInput.id = 'color'+myInputNb; //on lui met un identifiant
				myInputs.appendChild(newInput);	 //on ajoute l'input
				var retourDeChariot = document.createElement('br'); //un retour de chariot
				myInputs.appendChild(retourDeChariot); //qu'on ajoute
			}
			function rmInput() {
				var myInputNb = document.getElementById('totalColors').value; //nombre d'inputs
				if (myInputNb>0) { //vérifie qu'il y ait au moins 1 input
					var node = document.getElementById('color'+myInputNb); //l'input a supprime
					document.getElementById('myInputs').removeChild(document.getElementById('myInputs').lastChild); //on retire le dernier enfant -> le br
					node.parentNode.removeChild(node); //on retire l'input
					myInputNb--; //on décrémente le nombre d'inputs
					document.getElementById('totalColors').value = myInputNb; //on MAJ le nombre d'inputs
				}
			}
		</script>
	</head>
	<body>
		<form id="myInputs" method="post">
			<input type="hidden" id="totalColors" name="totalColors" value="0" size="2" />
		</form>
		<input type="button" value="Send" onclick="document.getElementById('myInputs').submit()" />
		<input type="button" value="+" onclick="addInput()" />
		<input type="button" value="-" onclick="rmInput()" /></a>
		
		<br /><br /><div>
					</div>
	</body>
</html>

Il est sûrement pas très "optimisé"
 
iMatthieu a dit:
Hello,

J'ai pas bien compris mais voilà un javascript que j'avais commencé et qui pourrait peut-être t'aider :

Il est sûrement pas très "optimisé"

Dans l'esprit, c'est exactement ça. :up:
Maintenant, il faut que je l'adapte.Puis-je, si besoin te contacter par mp ?
:zen: :zen: :zen:

nb : m'autorise-tu à l'utiliser ?