Bonjour,,
J'ai un tableaux dynamique qui contient des champs de saisie , le problèm c'est que lors de l'insertion dans la base il y a que la derniere ligne qui s'enregistre voila le code :
1.le code de creation du tableau
<form name= "enr" method="post" action="enreg_vun.php" >
----
Vunérabilité |
Menace |
Contre Mesure |
Priorité |
<tfoot>
----
Ajouter une ligne |
</tfoot>
----
,
,
,
,
Supp,
</form>
-------------------------------------------------------------
2.code de l'enregistrement dans la base "enreg_vun.php"
<?php
$ch1 = array();
$ch2 = array();
$ch3 = array();
$ch4 = array();
foreach($_POST as $cle=>$value){
include("connection.php");
$nb=0;
for ($i=0;$i<sizeof($ch1);$i++)
{
$req="INSERT INTO vunerabi (champ1,champ2,champ3,champ4) VALUES('".$ch1[$i]."','".$ch2[$i]."','".$ch3[$i]."','".$ch4[$i]."');";
$res=mysql_query($req);
$nb++;
}
echo "<HTML>".$nb." enregistrements ont été faits dans la base !</HTML>";
?>
il me donne " 1 enregistrements ont été faits dans la base !
Merci
Si un élément utilise les 2 attributs 'id' et 'name', ceux-ci doivent avoir la même valeur, soit :
Ensuite, pour récupérer un tableau, les attributs doivent avoir une autre valeur :
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
Et si tu veux être certain de la synchronisation des colonnes d'une ligne,
il faut ajouter un indice :
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
Et pour récupérer :
foreach ($_POST['champ1'] as $cle => $valeur)
{
$champ1 = $valeur;
$champ2 = $_POST['champ2'][$cle];
$champ3 = $_POST['champ3'][$cle];
$champ4 = $_POST['champ4'][$cle];
Extrait concernant les attributs 'name' et 'id' :
Since many existing HTML user agents don't support the use of ID-type attributes in this way, identical values should be supplied for both of these attributes to ensure maximum forward and backward compatibility--for example
Table of Contents
Oui, "should be", cela veut dire "devrait"; en aucun cas il n'est indiqué que c'est invalide; c'est juste une question de facilité, qui n'a pour l'instant aucun rôle avec les navigateurs actuels. Sans compter qu'en DOM, étant 2 attributs différents, ils s'utilisent aussi différemment. Et pour ajouter à ça : la valeur de "name" n'est pas forcément unique (et d'ailleurs dans le cas de boutons radio groupés, ce n'est jamais le cas), alors qu'un attribut "id", lui, doit avoir une valeur unique. Ce n'est donc pas applicable.
Encore une fois, c'est juste une aide que propose là le w3c, en aucun cas une norme.
salut merci pour vous
mais jé encore le meme probléme il ajoute dans la base tt se passe bien mais il enregistre
que la derniere ligne
jé changer les id des inputs :
avant :
<td></td>
aprés:
<td></td>
mais je pense que le problem est dans la boucle
include("connection.php");
$nb=0;
for ($i=0;$i<sizeof($ch1);$i++)
{
$req="INSERT INTO vunerabi (champ1,champ2,champ3,champ4) VALUES('".$ch1[$i]."','".$ch2[$i]."','".$ch3[$i]."','".$ch4[$i]."');";
$res=mysql_query($req);
$nb++;
}
c urgent est important merci