J'ai un formulaire dynamique de gestion de notes de stagiaires
Le gestionnaire peut ajouter et remplir des inputs pour autant de notes existantes
le nombre de stagiaires pour chaque évaluation peut changer selon la présence ou l'absence de celui-ci
mon problème est que j'ai un bouton submit qui insère toutes les données saisies dynamiquement dans ma table evaluation mais quand je clique dessus je ne trouve que le dernier enregistrement que j'ai saisis !!!
mon code est le suivant:
le formulaire simplifié:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="robots" content="noindex, follow" />
<title>The ASW :: Tableaux dynamiques :: Exemple 4</title>
<style type="text/css">
table {
border : 2px solid #666;
border-collapse : collapse;
}
table thead th {
background : #369;
border-bottom : 2px solid #666;
color : #fff;
}
table tbody td {
border : 1px solid #ccc;
padding : 5px 2px;
}
</style>
<script type="text/javascript" src="../public/js/dtable.js"></script>
</head>
<body>
<p><a href="http://www.the-asw.com/articles/2005/09/18/50-une-interface-de-formulaire-a-base-de-tableaux-dynamiques">Retour à l'article</a></p>
<form action="index.php" method="post">
<table class="dTable">
<thead>
<tr>
<th>Approche technique</th>
<th>Communication</th>
<th>Colonne 3</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="5"><a href="#" onclick="addLigne(this); return false;">Ajouter une ligne</a></th>
</tr>
</tfoot>
<tbody>
<tr>
<td><input type="text" name="champ1[]" /></td>
<td><input type="text" name="champ2[]" /></td>
<td><a href="#" onclick="delLigne(this); return false;">Supp</a></td>
</tr>
</tbody>
</table>
<p><input type="submit" value="ok" name="ok" /></p>
</form>
</body>
</html>
le code javascript :[javascript]// Tableau
/*
* Utilisation :
* 1. Créer un tableau avec la proprieté class="dTable" (Dynamic TABLE)
* 2. Le tableau doit être standard : il contenir un <thead>, un <tbody> et un <tfoot>
* et utiliser à bon escient les <td> et <th>.
* 3. La première ligne du tbody sera utilisée comme ligne de réference.
* Elle sera clonée pour en ajouter de nouvelle. Elle ne sera pas affichée.
*/
window.onload = dtableInit;
/* initialise le script */
function dtableInit() {
var table = document.getElementsByTagName('TABLE');
for ( var i = 0; i < table.length; i++ ) {
// on récupère tous les tableaux dynamiques
if ( table.className = 'dTable' ) {
var tbody = table.tBodies[0];
var newTr = tbody.rows[0].cloneNode(true);
// on masque la première ligne du tbody (la ligne de reference)
tbody.rows[0].style.display = 'none';
// on en ajoute une
tbody.appendChild(newTr);
}
}
}
/* trouve le tag "parentTagName" parent de "element" */
function getParent(element, parentTagName) {
if ( ! element )
return null;
else if ( element.nodeType == 1 && element.tagName.toLowerCase() == parentTagName.toLowerCase() )
return element;
else
return getParent(element.parentNode, parentTagName);
}
/* ajoute une ligne */
function addLigne(link) {
// 1. récuperer le node "TABLE" à manipuler
var td = link.parentNode;
var table = getParent(td,'TABLE');
// 2. on va manipuler le TBODY
var tbody = table.tBodies[0];
// 3. on clone la ligne de reference
var newTr = tbody.rows[0].cloneNode(true);
tbody.appendChild(newTr);
if ( document.all ) // pour IE
newTr.style.display = "block";
else
newTr.style.display = "table-row"; // pour Gecko
}
/* supprimer une ligne */
function delLigne(link) {
// 1. récuperer le node "TABLE" à manipuler
var td = link.parentNode;
var table = getParent(td, 'TABLE');
// 2. récuperer le TBODY
var tbody = table.tBodies[0];
// 3. Supprimer le TR
tbody.removeChild(getParent(td, 'TR'));
}
[/javascript]
code PHP:
$L = new Evaluations();
foreach(($_POST['champ1'] as $id)
{
foreach(($_POST['champ2'] as $id2)
$L->insererEvaluation($id,$id1);
}
Pouvez-vous m'aider car je suis bloquée