Проблема с флажком, MySQL и PHP - PullRequest
0 голосов
/ 21 декабря 2011

Я пытаюсь использовать флажок в форме и хочу сохранить значение как 1 или 0. В моей БД.

В моей БД у меня есть поле «подписаться» со следующими атрибутами:

TINYING(4)
Not Null
Default value = '0'

В моей html-форме у меня есть следующее:

<input type="checkbox" value="1" name="subscribe" checked>Subscribe to our newsletter<br />

Если форма отправлена ​​в проверенном состоянии по умолчанию, запись передается в базу данных очень хорошо.

Если кто-то снимает флажок, запись не сохраняется.

Есть идеи, почему это происходит?Вам нужно посмотреть php, чтобы помочь?

Спасибо, Натан

Ответы [ 2 ]

0 голосов
/ 21 декабря 2011

Я думаю, вы должны использовать для этого тип BOOLEAN (TINYINT (1)), а не TINYINT (4). И не передавайте значение из формы непосредственно в запрос. Проверьте значение с помощью if () и присвойте каждой переменной логическое значение для запроса. Примерно так:

$subscribe = 0;

if(isset($_POST['subscribe']) && $_POST['subscribe'] == "1")
  $subscribe = 1;

mysql_query("... VALUES ('".$subscribed."' ...");

И для действительного XHTML используйте checked="checked" вместо checked

0 голосов
/ 21 декабря 2011

веб-браузеры не отправляют пару ключ-значение для флажка, который не отмечен.выполните print_r($_POST);, чтобы наблюдать это

, либо отмените подписку на все, кроме опубликованных подписанных значений, либо используйте скрытое поле ввода для хранения значений флажков, которые вы поместили в форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...