Formulaire : checkbox envoie 1 si coché et 0 si non

loutry -  
CptRomaiin Messages postés 315 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,
je viens vers vous aujourd'hui pour trouver des réponses à mon problème.
Je dois réaliser un formulaire (html, Php) mais je galère avec une question qui me semble simple. Lors que l'envoie de mon formulaire, j'ai une case checkbox

<input type="checkbox" value="" name="sev1_relance" />Serveur 1

J'ai suivi un conseil et mon code a été amélioré.

  
<input type="checkbox" onclick="if (this.checked) this.value=1; else this.value=0;" name="sev1_relance" value="0" /> Serveur 1

Le problème quand je valide mon formulaire, j'ai en réponse si je ne check pas

Column 'sev1_relance' cannot be null

Ce qui veut dire que même la valeur par défaut 0 n'est pas envoyée. (En revanche, si j'ai coché, ça part sans souci.

Comment faire svp ? Le code est incomplet, il faut que je mette en place une autre variable ?
Merci par avance pour votre aide

2 réponses

CptRomaiin Messages postés 315 Date d'inscription   Statut Membre Dernière intervention   58
 
Salut,
Le formulaire ne renvoi la variable que si la case est cochée. Tu peux utiliser ça pour vérifier en php si c'est coché ou pas :

if (isset($_POST['sev1_relance'])) {
  // La case est cochée
   
} else {
  // La case n'est pas cochée
}

Tu n'as pas besoin de javascript.
1
loutry
 
Coucou CptRomaiin, et merci de ta première réponse.
En réalité, j'aimerais qu'une valeur soit envoyée quoi qu'il arrive.
Si c'est coché : 1
Mais si ce n'est pas coché : 0

Pour que mon serveur distant enregistre par défaut 0, je dois du côté de ma table (Bdd) ?

Merci par avance
0
CptRomaiin Messages postés 315 Date d'inscription   Statut Membre Dernière intervention   58
 
Dans ce cas tu rajoutes une variable que tu inscris dans ta base de donnée :

if (isset($_POST['sev1_relance'])) {
  $sev1_relance = 1;
} else {
  $sev1_relance = 0;
}
1