UPDATE champ checkbox coché ou non

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

UPDATE champ checkbox coché ou non

Message le Dim Déc 09, 2007 14:56

Bonjour à tous,

En fait j'ai une checkbox. Quand je la coche j'aimerais que j'enregistre son statut coché dans ma base de données de sorte que l'on retienne ce que l'utilisateur avait coché. J'ai essayé avec un UPDATE mais il ne m'enregistre rien.

Voici comment je récupère la valeur

Code: Tout sélectionner
<?php
connexion_DB('abscence');

if (isset($_POST['normale'])) // la case inscription a été cochée donc affiche la valeur de VALUE de mon formulaire

{
echo $_POST['normale'];

$sql=mysql_query("UPDATE parametres SET statut="$_POST['normale']" WHERE ID_PARAM=1"); // je mets à jour le champ de ma table afin que je retienne qu'il est coché.
}

mysql_query($sql)or die('Erreur SQL !'.$sql.''.mysql_error());

echo "<br/>".$sql;

?>    
 
<FORM method="POST">
   <input type="checkbox" name="normale"value="try">Normales<br>
  <input type="submit" value="Afficher les résultats"/>
</form>



Quelle solution existe ?

John


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

Message le Dim Déc 09, 2007 15:08

Ton code doit contenir une erreur ailleurs que sur la récupération de la valeur de la checkbox


cleden
WRInaute passionné
WRInaute passionné
 
Messages: 1194
Inscription: 6 Jan 2003

Message le Dim Déc 09, 2007 15:09

Déjà,

Code: Tout sélectionner
if (isset($_POST['normale']))

Ne va pas vérifier si la case est cochée mais si la variable existe. Or Elle existe dans tous les cas car elle fait partie du formulaire.

Edit: J'ai un doute, quelqu'un peut confirmer ? :oops:

Mais ton problème ne vient pas directement de là. Essaies avec:
Code: Tout sélectionner
statut='".$_POST['normale']."'


D'autre part, je ne sais plus si les champs sql sont casse dépendants mais ton champ ID_PARAM est-il écrit en majuscule dans ta table ?


Loïc

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

Message le Dim Déc 09, 2007 17:13

Oui c'est écrit en majuscule.


SuperCureuil
WRInaute impliqué
WRInaute impliqué
 
Messages: 664
Inscription: 9 Mar 2007

Message le Dim Déc 09, 2007 19:07

Ne va pas vérifier si la case est cochée mais si la variable existe. Or Elle existe dans tous les cas car elle fait partie du formulaire.


Exact.

En plus, dans ce cas, même un !empty ne fonctionne pas ...

je suis intéressé par la soluce car je viens de rencontrer le même hic et je n'ai pas trouvé ...


cleden
WRInaute passionné
WRInaute passionné
 
Messages: 1194
Inscription: 6 Jan 2003

Message le Dim Déc 09, 2007 19:28

hx.jonathan a écrit:Oui c'est écrit en majuscule.

Et que donne ton
Code: Tout sélectionner
echo "<br/>".$sql;

?

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2455
Inscription: 30 Aoû 2002

Message le Dim Déc 09, 2007 22:06

cleden a écrit:Edit: J'ai un doute, quelqu'un peut confirmer ? :oops:


Non, un checkbox non coché ne renvoie RIEN.


SuperCureuil
WRInaute impliqué
WRInaute impliqué
 
Messages: 664
Inscription: 9 Mar 2007

Message le Dim Déc 09, 2007 22:50

Non, un checkbox non coché ne renvoie RIEN.


Ah bon ? En théorie, c'est vrai mais pourtant je viens encore de tester et si :wink:

L'id du champ existe via le formulaire, donc même non coché le isset sur le champ renvoie true, et si tu testes avec empty, ça ne passe pas non plus mais là je ne comprends pas pourquoi. Je me suis même renseigné sur le comportement des checkbox et en théorie le non coché ne renvoie rien. Enfin je me plante ss doute qq part :roll:

ça va faire boulet là mais tu peux donner un exemple de test sur un checkbox ?

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2455
Inscription: 30 Aoû 2002

Message le Dim Déc 09, 2007 23:02

SuperCureuil a écrit:
Non, un checkbox non coché ne renvoie RIEN.


Ah bon ? En théorie, c'est vrai mais pourtant je viens encore de tester et si :wink:

Et moi je viens de tester avec firefox et ça ne renvoie rien :wink:


SuperCureuil
WRInaute impliqué
WRInaute impliqué
 
Messages: 664
Inscription: 9 Mar 2007

Message le Dim Déc 09, 2007 23:12

D'accord, je ne dis pas que tu as tort, je dis que je l'ai testé tantôt et une heure hier soir sans parvenir à trouver la solution parce que ça passait tout le temps, d'où je pense que je teste mal, d'où je te demande de montrer la manip' que tu fais, tout simplement.

Tu veux bien me la montrer :lol: ?

EDIT : je viens de relire le début du post, et en fait ça ne correspond pas à mon problème puisque, effectivement Jeroen, si ce n'est pas coché le champ ne renvoie aucune valeur, mais il existe bel et bien ..., Je me suis mal exprimé :roll:

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2455
Inscription: 30 Aoû 2002

Message le Dim Déc 09, 2007 23:26

NON : il n'existe pas, et en GET tu peux t'en rendre compte dans l'url renvoyée

Code: Tout sélectionner
<?php
foreach($_GET as $k => $v) echo $k." : ".$v."<br />";
?>   
<form method="get">
  <input type="checkbox" name="test" value="1" <?php if (isset($_GET['test'])) echo "checked=\"checked\""; ?>/><input type="submit" value="Afficher" />
</form>


SuperCureuil
WRInaute impliqué
WRInaute impliqué
 
Messages: 664
Inscription: 9 Mar 2007

Message le Dim Déc 09, 2007 23:52

Bon ben je m'incline, ça fonctionne alors que je me suis arraché les cheveux hier parce que cette p... de variable existait toujours :twisted: TGrâce à toi je viens de comprendre pourquoi : après ce test je créais une variable de session contenant la valeur en question. En aval, je testais l'existence de la variable de session. Comme je ne la détruisais pas, ben elle existait toujours et j'ai confondu ce checkbox avec la variable de session. CQFD

Donc une checkbox vide ne renvoie bel et bien RIEN :wink:

merci et @+


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