checkbox ne fonctionne pas

checkbox ne fonctionne pas - PHP - Programmation

Marsh Posté le 25-09-2007 à 12:34:30    

Bonjour,
 
J'ai une case à cocher dont je ne réussis pas à sauvergarder. Le type est tinyint(1)
 
Saisie

Code :
  1. $commandite = $var['commandite'];
  2.             <td align="center">
  3.             <input type='checkbox' name='commandite' value="<?php if ($commandite=='1') {echo 'checked="checked"';}?>">
  4.             </td>
  5.             <td><strong>Mon employeur possède un programme de commandite</strong></td>


 
traitement

Code :
  1. $commandite = $_POST['commandite'];
  2. if(!empty($commandite)){
  3.  $commandite = 1;
  4. }
  5. else
  6. {
  7. $commandite = 0;
  8. }
  9. Le update se fait plus tard.
  10. mysql_query ("UPDATE ATS_membre SET `fete`='$fete',`mdp`='$mdp',`adresse`='$adresse', `ville`='$ville', `codep`='$codep', `t_res`='$t_res', `t_trav`='$t_trav', `t_cell`='$t_cell', `mail`='$mail',
  11. `employeur`='$employeur', `e_courriel`='$e_courriel',`commandite`='$commandite' WHERE pseudo='$pseudo_session'" );

Reply

Marsh Posté le 25-09-2007 à 12:34:30   

Reply

Marsh Posté le 25-09-2007 à 12:49:35    

et ta question c'est quoi?


Message édité par skeye le 25-09-2007 à 12:49:42

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-09-2007 à 12:51:37    

à l'affiche, tout est ok mais quand j'enregistre, le résultat n'est pas conservé dans la table.

Reply

Marsh Posté le 25-09-2007 à 12:52:41    

et que retourne ton mysql_query?[:dawao]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-09-2007 à 12:58:12    

Je n'ai pas d'erreur!

Reply

Marsh Posté le 25-09-2007 à 13:02:23    

http://fr.php.net/manual/fr/function.mysql-query.php
 

Citation :

Pour les autres types de requêtes, UPDATE, DELETE, DROP, etc., mysql_query() retourne TRUE en cas de succès ou FALSE en cas d'erreur.


 
Il se passe quoi dans ton cas?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-09-2007 à 13:05:24    

true, au début du traitement, j'ai fait afficher le contenu de ma variable et même si je l'ai coché précdemment, elle esst vide.
 
 $commandite = $_POST['commandite'];
 echo $commandite;

Reply

Marsh Posté le 25-09-2007 à 13:09:17    

et tu le passes bien en POST, ton formulaire?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-09-2007 à 13:20:36    

oui,
 
<form method="POST" action="ent_iden_maj.php" enctype="multipart/form-data">

Reply

Marsh Posté le 25-09-2007 à 13:22:59    

print_r($_POST) avant ton  
 $commandite = $_POST['commandite']; ça conne quoi?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-09-2007 à 13:22:59   

Reply

Marsh Posté le 25-09-2007 à 13:30:19    

Array ( [MAX_FILE_SIZE] => 1048576 [mdp] => [fete] => 0000-00-00 [adresse] => [ville] => [codep] => [t_res] => [t_trav] => [t_cell] => [mail] => [employeur] => [e_courriel] => [q1] => [Submit] => Enregistrer mes informations )
 
Bizarrement, avant d'ajouter, cet écran fonctionnait très bien.

Reply

Marsh Posté le 25-09-2007 à 13:33:09    

J'aurais tendance à dire que le probleme vient de là

Code :
  1. Le update se fait plus tard.


Je crainds que ton initialisation de la variable commandite ne soit pas globale à ton script et qu'à l'endroit ou tu effectues ton update celle-ci ne soit pas initialisée.
Probablement un if/else avec l'initalisation dans le if et l'utilisation dans le else.

 

Par ailleurs ces 6 lignes:

Code :
  1. $commandite = $_POST['commandite'];
  2.         if(!empty($commandite)){
  3.             $commandite = 1;
  4.         }
  5.         else
  6.         {
  7.         $commandite = 0;
  8.         }


peuvent aisement se remplacer par

Code :
  1. $commandite = empty($_POST['commandite'])?0:1;



Message édité par anapajari le 25-09-2007 à 13:35:30
Reply

Marsh Posté le 25-09-2007 à 13:34:11    

il n'y a pas de commandite, dans ton $_POST...il est bien dans le formulaire? Envoie le code complet...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-09-2007 à 13:37:20    

oui, j'ai fait un test en le changeant de nom (q1)

Reply

Marsh Posté le 25-09-2007 à 13:41:54    

han mais j'ai pas fait gaffe, c'est juste crétin. Tu lui donnes aucune valeur, donc dans post il vaudra toujours vide...[:moule_bite]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-09-2007 à 13:47:54    

si je coche la valeur n'est pas automatiquement conservé dans commandite.

Reply

Marsh Posté le 25-09-2007 à 13:49:14    

Regarde le html que tu génères. Ton value est vide. Toujours. Ou alors contient une chaine de caractères qui ne vaut ni 0 ni 1.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-09-2007 à 13:49:15    

skeye a écrit :

han mais j'ai pas fait gaffe, c'est juste crétin. Tu lui donnes aucune valeur, donc dans post il vaudra toujours vide...[:moule_bite]


exacte :o
sauf que c'est encore pire, il lui donne n'importe quoi comme valeur:

Code :
  1. <input type='checkbox' name='commandite' value="<?php if ($commandite=='1') {echo 'checked="checked"';}?>">


On se retrouve donc avec
si commandite vaut 1

Code :
  1. <input type='checkbox' name='commandite' value="'checked="checked"'/>


si commandite vaut 0

Code :
  1. <input type='checkbox' name='commandite' value=""/>
 

edit: [:benou_grilled]


Message édité par anapajari le 25-09-2007 à 13:49:43
Reply

Marsh Posté le 25-09-2007 à 13:51:02    

'fin bref, quoi qu'il arrive avant de venir pleurer sur un forum on commence par regarder comment c'est censé fonctionner, bordel.[:dawao]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-09-2007 à 13:54:33    

exactement ce que j'ai fait ici: http://www.swsysteme.com/tutos/tutocase.php
 
1.Utilisation simple

Reply

Marsh Posté le 25-09-2007 à 13:56:17    

fourniey a écrit :

exactement ce que j'ai fait ici: http://www.swsysteme.com/tutos/tutocase.php
 
1.Utilisation simple


bah regarde mieux. Ton code ne génère pas du tout le formulaire donné en exemple.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-09-2007 à 14:10:52    

Je suis partie de cela mais je voulais cocher la case si la table contenait 1 alors, de là est apparu: <?php if ($commandite=='1') {echo 'checked="checked"'
 
Dans le traitement, je me suis dit, si $commandite est vide, je mets 0 sinon, je mets 1.

Reply

Marsh Posté le 25-09-2007 à 16:51:12    

fourniey a écrit :

Je suis partie de cela mais je voulais cocher la case si la table contenait 1 alors, de là est apparu: <?php if ($commandite=='1') {echo 'checked="checked"'
 
Dans le traitement, je me suis dit, si $commandite est vide, je mets 0 sinon, je mets 1.


 
Euh, fourniey, tu es sûrement un gars sympa, mais tu tiens du boulet par moment.
 
A aucun moment je ne t'ai dit de placer le bout de code que je t'avais donné dans le value de ton input. Le dernier exemple "ça marche pas" que tu donnais, la portion de code était fichue au bon endroit, pourquoi diable est-ce que tu t'amuses à le changer de place 2 jours plus tard alors que tu n'as (visiblement) qu'une idée très sommaire de ce que tu fais ?

Reply

Marsh Posté le 25-09-2007 à 17:44:52    

oups, on parle de deux choses différentes.
 
Je l'ai utilisé pour afficher dans un sondage et là, je l'utilise pour une case à cocher.
 
Une chose est sure, je m'améliore à force d'étudier.


Message édité par fourniey le 25-09-2007 à 17:52:27
Reply

Marsh Posté le 26-09-2007 à 00:33:50    

Merci, je vais trouvé ce soir!

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed