Si une case n'est pas cochée, aucune donnée n'est envoyée pour celle-ci. (Si elle est cochée, l'attribut de valeur est envoyé). Tenter de lire $_POST['checkbox']
provoquera une erreur PHP (sauf si vous utilisez empty()
ou isset()
, qui sont des constructions de langage spécial).
this->input->post('checkbox')
renverra FALSE
si les données de la case à cocher ne sont pas définies, c'est-à-dire si elles n'ont pas été cochées. J'ai peur de ne pas pouvoir changer cette valeur. Si vous voulez une valeur différente, vous devrez comparer FALSE manuellement et utiliser une valeur différente. Enfin, lorsque vous soumettez FALSE à la base de données en utilisant l'API d'accès DB de CodeIgniter, il est converti en '0'. Cela fonctionnerait bien pour une colonne booléenne dans la base de données. Lorsque vous lisez une colonne booléenne, vous obtenez le code préféré de votre base de données pour TRUE, indépendamment de ce que vous avez envoyé à l'origine. (À l'exception possible de sqlite, qui est faiblement typé, un peu comme PHP est).
C'est exactement ce que je cherchais, mais je l'ai trouvé utile de faire l'entrée cachée avec une valeur de -1 à 0 et FAUX causé des problèmes pour moi après le casting en tant que INT. – kchason