Retenir statut checkbox cohées ou non !!

hx.jonathan
WRInaute discret
WRInaute discret
 
Messages: 162
Inscription: 2 Mar 2005

Retenir statut checkbox cohées ou non !!

Message le Lun Avr 14, 2008 13:16

Bonjour,:D

J'ai parcouru le forum pour trouver des réponses à ma question mais sans succès. Je fais donc appel à vous.

J'ai une page sur laquelle j'ai des checkbox et une autre qui me sert à enregistrer le statut coché ou décoché de ces checkbox dans la base de données.

Je n'ai aucune erreur sql. Par contre, quand je coche une checkbox, c'est comme si je n'avais rien coché.

Voici le code de mes 2 pages:
-------------------------------------

page qui affiche les chekbox
-----------------------------------

Code: Tout sélectionner
connexion_DB('abscence');
$aff = mysql_query("SELECT ID_Image,Image_Name, Statut_Image_Report_01 FROM images")or die(mysql_error());

echo '<form method="post" action=update_reportage.php>';
echo '<table border=1>';  //DEBUT TABLEAU----------------------------------------------------------------------

while($row = mysql_fetch_array($aff))
{

$ID_Image=$row['ID_Image'];
$Image_Name=$row['Image_Name'];
$Statut_Image_Report_01=$row['Statut_Image_Report_01'];

echo  "<tr><td>$ID_Image</td><td><input type='checkbox' name='chk_.$ID_Image' id='chk_.$ID_Image' value='1'/></td></tr>";




}


echo "</table><br/><br/>";
echo  '<input type="submit" name="envoie" VALUE="Enregistrer">';
echo  '</form>';

mysql_close();


page qui UPDATE le statut des checkbox dans la BDD
-----------------------------------
Code: Tout sélectionner
<?php
include_once '../fonctions.php';

connexion_DB('abscence');

$aff = mysql_query("SELECT ID_Image,Image_Name, Statut_Image_Report_01 FROM images")or die(mysql_error());

while($row = mysql_fetch_array($aff)) //BOUCLE---------------------
{
$ID_Image=$row['ID_Image'];
$Image_Name=$row['Image_Name'];
$Statut_Image_Report_01=$row['Statut_Image_Report_01'];


$value = 'pascoché';
    if (isset($_POST['chk_'.$ID_Image]) && ($_POST['chk_'.$ID_Image] =='1'))
     {
           $value = 'coché';
     }
     
     $sql = "UPDATE images SET Statut_Image_Report_01='".$value."' WHERE ID_Image=".$row['ID_Image'];
   
   
     mysql_query($sql);
    echo "<br/>".$sql;

}




?>



D'avance merci pour votre aide. :D


BadProcESs
WRInaute accro
WRInaute accro
 
Messages: 2657
Inscription: 28 Juil 2003

Message le Lun Avr 14, 2008 13:21

La checkbox de mémoire ne renvoi aucune valeur.
Elle est simplement renseigné si elle est coché, sinon elle ne renvoie rien.

Donc je ferait simplement :
Code: Tout sélectionner
if (isset($_POST['chk_'.$ID_Image])) {...}

hx.jonathan
WRInaute discret
WRInaute discret
 
Messages: 162
Inscription: 2 Mar 2005

Message le Lun Avr 14, 2008 13:28

Salut,

merci de ta réponse. Je viens d'essayer mais toujours rien il me mets :

Code: Tout sélectionner
UPDATE images SET Statut_Image_Report_01='pascoché' WHERE ID_Image=1
UPDATE images SET Statut_Image_Report_01='pascoché' WHERE ID_Image=2
UPDATE images SET Statut_Image_Report_01='pascoché' WHERE ID_Image=3
UPDATE images SET Statut_Image_Report_01='pascoché' WHERE ID_Image=4
UPDATE images SET Statut_Image_Report_01='pascoché' WHERE ID_Image=9
UPDATE images SET Statut_Image_Report_01='pascoché' WHERE ID_Image=6
UPDATE images SET Statut_Image_Report_01='pascoché' WHERE ID_Image=7
UPDATE images SET Statut_Image_Report_01='pascoché' WHERE ID_Image=8
UPDATE images SET Statut_Image_Report_01='pascoché' WHERE ID_Image=10


J'ai pourtant coché des checkbox. !!

Une idée ?

John


NxtGen
WRInaute impliqué
WRInaute impliqué
 
Messages: 762
Inscription: 24 Oct 2006

Message le Lun Avr 14, 2008 13:33

a quel endroit tu définis $ID ?
elle n'est ni renseignée, ni incrémentée...

hx.jonathan
WRInaute discret
WRInaute discret
 
Messages: 162
Inscription: 2 Mar 2005

Message le Lun Avr 14, 2008 13:37

Salut,

Dans la première page j'ai ceci :

Code: Tout sélectionner
echo  "<tr><td>$ID_Image</td><td><input type='checkbox' name='chk_.$ID_Image' id='chk_.$ID_Image' value='1'/></td></tr>";


BadProcESs
WRInaute accro
WRInaute accro
 
Messages: 2657
Inscription: 28 Juil 2003

Message le Lun Avr 14, 2008 13:55

Passe temporairement ton formulaiure en get pour voir ce qu'il passe comme paramètres.

hx.jonathan
WRInaute discret
WRInaute discret
 
Messages: 162
Inscription: 2 Mar 2005

Message le Lun Avr 14, 2008 14:01

Je vois pas ce que tu veux dire ? en GET. Le récupérer en GET.

Je t'avoue que je n'utilise jamais cette fonction.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8579
Inscription: 23 Nov 2005

Message le Lun Avr 14, 2008 14:26

Essai plutôt ça :

Code: Tout sélectionner
echo  "<tr><td>$ID_Image</td><td><input type='checkbox' name='chk_".$ID_Image."' id='chk_".$ID_Image."' value='1'/></td></tr>";


ptit_mousse
WRInaute discret
WRInaute discret
 
Messages: 67
Inscription: 19 Déc 2006

Message le Lun Avr 14, 2008 15:04

ou encore au niveau de ta page update un petit :
Code: Tout sélectionner
var_dump($_POST);


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Message le Lun Avr 14, 2008 15:12

et ça ?

Code: Tout sélectionner
$value = 'pascoché';
    if (!empty($_POST['chk_'.$ID_Image]))
     {
           $value = 'coché';
     }
     
     $sql = "UPDATE images SET Statut_Image_Report_01='".$value."' WHERE ID_Image=".$row['ID_Image'];
   
   
     mysql_query($sql);
    echo "<br/>".$sql;

}


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités