Mysql
 sql >> Base de données >  >> RDS >> Mysql

Case décochée renvoyant une valeur nulle

Si une case n'est pas cochée, elle n'est pas envoyée, donc définir sa valeur sur 0 si elle n'est pas cochée ne va pas aider - elle renverra toujours NULL.

Il existe deux façons de résoudre ce problème facilement :

1) Supposons qu'un NULL dans les paramètres PHP signifie que la case n'est pas cochée. Si la case à cocher n'existe pas toujours sur la page, cela pourrait être problématique. À première vue, il y a un nombre variable de cases à cocher, donc cela ne fonctionnera probablement pas.

2) Ajoutez une entrée masquée qui porte le même nom que la case à cocher avec la valeur 0 AVANT la case à cocher. Si la case n'est pas cochée, la valeur du champ masqué sera utilisée, si elle est cochée, la valeur de la case sera utilisée.

<input type="hidden" name="checkbox_1" value="0">
<input type="checkbox" name="checkbox_1" value="1">

Remarque :Si vos noms sont sous forme de tableau (c'est-à-dire qu'ils contiennent des crochets), cela ne fonctionnera pas, car les champs masqués incrémenteront également le nombre de tableaux.