Cases à cocher incrémentées

Résolu
JB_A Messages postés 301 Date d'inscription   Statut Membre Dernière intervention   -  
JB_A Messages postés 301 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un formulaire avec des cases à cocher et j'ai un petit problème.

Le fait de cocher ou de décocher les cases doit enregistrer des lignes dans ma base de données.

Seulement, il doit y avoir un problème dans mon script car il n'arrive pas à enregsitrer. Si je duplique les lignes, pas de problème (1 SQL par variable) mais si j'essaie d'enregistrer de manière automatique, cela ne marche pas

Dans mon formulaire, il y a d'abord les cases à cocher :

<td><input type="checkbox" name="droit[<? echo $row[0] ?>]" value="1">
<input type="hidden" name="module[<? echo $row[0] ?>]" value="<? echo $row[0] ?>">
<input type="hidden" name="niveau[<? echo $row[0] ?>]" value="1">
</input>&nbsp;<span class="normal"><? echo $row[1] ?></span></td>


Dans ma page d'enregistrement, il y a le code (pour dire que si la case n'est pas cochée, on met la valeur à 0) :

for ($i = 1; $i <= 7; $i++) {
 
	            if ($droit[$i]!="1") {
		$droit[$i]="0";
	             }

            }


Puis, il y a l'enregistrement des valeurs :

for ($module[$i]=$module[1]; $module[$i] <= $module[7]; $module[$i]++) {
	$droitid = next_id("tjs_droit_access");
	$sSQL="INSERT INTO tjs_droit_access (fjs_droitaccess_id, fjs_droitaccess_module,
                fjs_droitaccess_actif, fjs_droitaccess_niveau, fjs_droitaccess_itid) VALUES ('$droitid', 
                '$module[$i]', '$droit[$i]', '$niveau[$i]', '$itid')";
	$q->query($DB,$sSQL);
		}


Seulement voila, il me renvoit :

INSERT INTO tjs_droit_access (fjs_droitaccess_id, fjs_droitaccess_module, fjs_droitaccess_actif, fjs_droitaccess_niveau, fjs_droitaccess_itid) VALUES ('2197', '7', '', '', '1')


Comme si il ne comprenait pas $droit[$i] et $niveau[$i]

Pourriez-vous m'aider à résoudre le problème.

Merci par avance

1 réponse

JB_A Messages postés 301 Date d'inscription   Statut Membre Dernière intervention   5
 
Ca y est, j'ai trouvé la solution, il suffit de remplacer :

for ($module[$i]=$module[1]; $module[$i] <= $module[7]; $module[$i]++) {



par

for ($i = 1; $i <= 7; $i++) {


@ +
0