checkbox cochée ou pas

Répondre
fausto
le 25/06/2013 à 11:44
fausto
Bonjour

je bloque sur un problème de checkbox
J'ai une table "sections" avec une colonne "nom_class" et une colonne "activee" (colonne qui comporte oui ou non)
je récupère toutes mes sections dans un formulaire, avec une checkbox checked ou pas (jusque là pas de problème)
code :

<?php	
$sql1 = 'SELECT * FROM sections';
$req1 = mysql_query($sql1) or die('Erreur SQL !'.$sql1.''.mysql_error());
while($data1 = mysql_fetch_assoc($req1))
{
if($data1['activee']=='oui') {
$check = 'checked="checked"';
}

else {
$check = '';
}

echo '<input type="checkbox" name="choix['.$data1['nom_class'].']" id="'.$data1['nom_class'].'" '.$check.' class="checkbox" value="'.$data1['nom_class'].'"/>&nbsp;<label for="'.$data1['nom_class'].'"><span style="color:#666; text-decoration:none; cursor:pointer;">'.$nom.'</span></label><br>'."\t\r";


ensuite, le formulaire est soumis avec le choix du visiteur (checkbox cochée ou pas), pas de problème si la checkbox est cochée

<?php
if(isset($_POST['choix'])){
foreach($_POST['choix'] as $chkbx){
$sql = "UPDATE sections SET activee=\"oui\" WHERE nom_class='$chkbx'";
mysql_query($sql) or die('Erreur SQL!'.$sql.'<br>'.mysql_error());
$res = mysql_query($sql);
}}


MAIS, je voudrais updater la table en mettant activee=non, si la checkbox correspondante est décochée
est-ce possible ?

Merci pour vos lumières

Fausto
fausto
le 25/06/2013 à 12:42
fausto
J'ai trouvé une solution pas académique (mais qui fonctionne) en plus, j'ai peu d'entrées dans ma table.
je passe dans un 1er temps toutes les valeurs de la colonne activee à "non"
et ensuite, toutes les checkbox cochées à "oui"
Bon, ça fait une double manip', mais j'ai rien de mieux pour l'instant.
Si vous avez une solution "académique", je suis toujours preneur ...
Merci pour votre aide et votre patience

Fausto
<?php
$sql2 = "UPDATE sections SET activee=\"non\" ";
mysql_query($sql2) or die('Erreur SQL!'.$sql2.'<br>'.mysql_error());
$res2 = mysql_query($sql2);


if(isset($_POST['choix'])){
foreach($_POST['choix'] as $chkbx){
$sql = "UPDATE sections SET activee=\"oui\" WHERE nom_class='$chkbx'";
mysql_query($sql) or die('Erreur SQL!'.$sql.'<br>'.mysql_error());
$res = mysql_query($sql);
}}
LupusMic
le 26/06/2013 à 07:46
LupusMic
N'oublie pas var_dump pour inspecter $_POST.

En ce qui concerne les checkboxes, seules les valeurs cochées doivent être transmise par le client web lors de la soumission du formulaire. C'est donc normal que tu ne reçoive que ce qui est coché.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours