Champs de saisie dans un tableaux dynamique

aloulou650 Messages postés 6 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 25 mai 2008 - 25 mai 2008 à 04:34
aloulou650 Messages postés 6 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 25 mai 2008 - 25 mai 2008 à 17:37
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){
   
    if(substr($cle,0,7)=="champ1"){
        $ch1[]=$value;
    }
   
    if(substr($cle,0,7)=="champ2"){
        $ch2[]=$value;
    }
    if(substr($cle,0,7)=="champ3"){
        $ch3[]=$value;
    }
   
    if(substr($cle,0,7)=="champ4"){
        $ch4[]=$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

5 réponses

cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
25 mai 2008 à 10:38
Bonjour,

Tout d'abord, ceci est invalide :

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];

$req = 'INSERT INTO vunerabi (champ1,champ2,champ3,champ4)
VALUES(\'' . $champ1 . '\',
\'' . $champ2 . '\',
\'' . $champ3 . '\',
\'' . $champ4 . '\')';
$res=mysql_query($req);
}
</tr>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 mai 2008 à 11:04
Hello,

"Si un élément utilise les 2 attributs 'id' et 'name', ceux-ci doivent avoir la même valeur"

heu...non?
0
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
25 mai 2008 à 12:18
Les éléments indiqués ci-dessus sont au format xhtml. Donc :
http://www.w3.org/WAI/GL/2000/05/wcag-techs.html - paragraphe xhtml - alinéa 6

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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 mai 2008 à 12:42
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aloulou650 Messages postés 6 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 25 mai 2008
25 mai 2008 à 17:37
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
0
Rejoignez-nous