Bonjour tout le monde,

J'ai un script javascript qui me permet de créer une ligne dans un tableau et d'y insérer n text area (zone de texte) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$NbFields = mysql_num_fields($query);
		echo 'le nombre de champ de cette table vaut ' . $NbFields;
		echo  '<input type="button" value="Ajouter une ligne au tableau" onClick="AddRow('.$NbFields.') "; >';
 
		echo '</table>';
 
		?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
function AddRow(NombreCellules)
{
     var newRow = document.getElementById('TableauUpdate').insertRow(-1); //on ajoute une ligne en fin de tableau
  for(i = 0; i < NombreCellules; i++)
  {
    var input = document.createElement("input");
    input.type = "text";
    newCell = newRow.insertCell(i);
    newCell.appendChild(input);
  }
}
</script>
Je devrais donner un nom bien précis à chaque zone de texte créés.

Voici ce que cela devrait donner :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<td> <textarea name="new[2][NOM_PROF]" . $>Willis</textarea> <input name="old[2][NOM_PROF]" type="hidden"  value="Willis"/></td><td> <textarea name="new[2][PRENOM_PROF]" . $>Bruce</textarea> <input name="old[2][PRENOM_PROF]" type="hidden"  value="Bruce"/></td><td> <textarea name="new[2][Email_Prof]" . $>BWillis@gmail.com</textarea> <input name="old[2][Email_Prof]" type="hidden"  value="BWillis@gmail.com"/></td></tr><input type="submi
Vous l'aurez remarqué, il faut créer avec chaque zone de texte un text area invisible, et donner un nom à la text visible area "new[2][NOM_PROF]"
et à la text area invisible "old[2][PRENOM_PROF]"

Il y'a plusieurs difficultés :

1) Il faudrait commencer la numérotation [n] après le dernier, cela devrait se faire grâce à mysql_num_rows() - 1 (le nombre de ligne déjà présentes dans la table - 1 car on commence la numérotation à zéro)
2) Donner un nom bien précis pour la text area visible et invisible.

Pour ce qui est du nom j'ai fait ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
input.name = new[NombreLignes][NOM_PROF]" . $;
Une grosse difficulté est de changer le nom [NOM_PROF] par une variable qui correspond au nom de la colonne dans laquelle on est actuellement.

Voici le code que j'utilise pour créer mon formulaire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
echo '<form action="MettreAJour.php" method="post" name="frmSaisie" id="frmSaisie">';
 
 
	echo '<tr>';
	for($i=0;$i<mysql_num_fields($query);$i++)
		{
		echo '<th>'.mysql_field_name($query,$i).'</th>';
		}
	echo '</tr>';
 
	$nligne = 0;
	$nbColonnes = 0;
	while($row = mysql_fetch_array($query,MYSQL_ASSOC)) 
	{
 
	echo '<tr>';
	foreach($row as $NomCol => $Valeur)
		{
			   echo '<td> <textarea name="new[' . $nligne . '][' . $NomCol . ']" . $>'.$Valeur.'</textarea> <input name="old[' . $nligne . '][' . $NomCol . ']" type="hidden"  value="'.$Valeur.'"/></td>';	
		}
	$nligne++;
				echo '</tr>';
	}
	echo '<input type="submit" name="Submit" value="Mettre la table à jour" />' ; 
 
	echo '</p>';
	echo '</form>';
Connaissez-vous un site qui expliquerais tout cela où pourriez-vous me mettre sur une première piste ?

Merci d'avance.

beegees