[HTML] Gros problème de Checkbox

Gros problème de Checkbox [HTML] - HTML/CSS - Programmation

Marsh Posté le 08-07-2005 à 09:16:51    

Bonjour,  
 
J'ai un gros problème avec des checkbox... Et je ne comprend vraiment pas d'où ça vient ! Je vous exmplique :
 
J'ai un formulaire sur ma page qui contient des checkbox et un submit. Le submit envoit les données à une autre page. Le problème est que si mes checkbox ne sont pas cochées, la seconde page ne connait pas les index des variables (???), alors que si elles sont cochées, tout va bien...
 
Je ne vois vaiment pas pourquoi car en plus, ça n'a aucun intérêt !
 
Mon problème pourrait aussi être résolu si je ne voyait pas les erreurs qui sont affichées car dans le principe, comme je teste la valeur des variables, ça passe quand même (même si c'ets pas très propres...)
 
 
Sur internet, il y a beaucoup d'exemple de formulaire avec des checkbox mais je n'en ia toujours pas trouvé qui expliquent la récupération des données... Alors si quelqu'un pouvait m'expliquer ça, ça serait trop cool génial !!!
 
Merci d'avance !!!!  :D

Reply

Marsh Posté le 08-07-2005 à 09:16:51   

Reply

Marsh Posté le 08-07-2005 à 09:19:53    

chiniti a écrit :

J'ai un formulaire sur ma page qui contient des checkbox et un submit. Le submit envoit les données à une autre page. Le problème est que si mes checkbox ne sont pas cochées, la seconde page ne connait pas les index des variables (???), alors que si elles sont cochées, tout va bien...
 
Je ne vois vaiment pas pourquoi


Parce que les documents normatifs du HTML définissent qu'un contrôle non activé (donc une checkbox non cochée) n'a pas à être envoyée au serveur.
 
T'as qu'à tester l'existence de tes variables au niveau du serveur, si elles n'existent pas c'est qu'elles n'étaient pas cochées chez le client


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-07-2005 à 10:27:55    

Merci pour ton aide mais je ne vois pas très bien comment faire... Pourrais-tu m'expliquer ?

Reply

Marsh Posté le 08-07-2005 à 10:46:38    

si ta checkbox est coché alors lorsque tu valide ton formulaire
 
$_POST['name_check'] a une valeur
sinon $_POST['name_check'] n'est pas défini
 
exemple
<input type="checkbox" name="oui" value="1" />
si on coche et qu'on valide
 
$_POST['name_check'] = 1
sinon  
$_POST['name_check']  n'existe pas

Reply

Marsh Posté le 08-07-2005 à 10:48:48    

Une technique consiste à mettre un input caché pour que le parametre soit toujours envoyé :
 

Code :
  1. <input name="toto" type="checkbox" value="O" />
  2. <input name="toto" type="hidden" />


 

Reply

Marsh Posté le 08-07-2005 à 11:35:08    

Bidem a écrit :

Une technique consiste à mettre un input caché pour que le parametre soit toujours envoyé :
 

Code :
  1. <input name="toto" type="checkbox" value="O" />
  2. <input name="toto" type="hidden" />



Quel est l'intérêt ?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 08-07-2005 à 11:40:03    

chiniti a écrit :

Merci pour ton aide mais je ne vois pas très bien comment faire... Pourrais-tu m'expliquer ?


Si tu es en PHP, il a une fonction permettant de savoir si un champ existe dans un tableau associatif.
 
Disons que ta checkbox s'appelle "bouli" et que ta méthode d'envoi de formulaire est "GET", alors

isset($_GET['bouli'])

sera vrai uniquement si 'bouli' existe
Donc

if(isset($_GET['bouli']) {
    // actions si 'bouli' coché
} else {
    // actions si 'bouli' pas coché
}


D'ailleurs tu es censé faire un test isset sur chaque variable de formulaire (avec les réactions appropriés en fonction du résultat) que tu reçois avant de faire tes traitements dessus, au cas où elle n'aurait pas été envoyée (genre le client qui a fait joujou avec les champs ou a bloqué certaines variables :o)
 

Bidem a écrit :

Une technique consiste à mettre un input caché pour que le parametre soit toujours envoyé :
 

Code :
  1. <input name="toto" type="checkbox" value="O" />
  2. <input name="toto" type="hidden" />



[:mlc]
 
f'ing bloody idiot :pfff:


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

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