Не установлен флажок Codeigniter = пусто? - PullRequest
2 голосов
/ 03 декабря 2010

У меня есть база данных, в которой я собираю много вопросов типа да / нет, и предпочтительный метод для пользователей - это флажки. Все работает как надо, за исключением случаев, когда нужно получить и показать значения. Снятые флажки возвращают значения «0»

Есть ли возможность игнорировать и не отображать «0» в отчетах ИЛИ изменить значение по умолчанию с «0» на пустое »

Ответы [ 6 ]

5 голосов
/ 29 ноября 2012
result = $this->input->post('checkbox',TRUE)==null ? 0 : 1
2 голосов
/ 03 декабря 2010

это никак не связано с CodeIgniter.:) Как насчет этого?

if($_POST['checkbox']==0) 
    $_POST['checkbox'] = '';
1 голос
/ 31 марта 2014

, поскольку флажок , возвращающий нулевое значение, пока не отмечено, вы не получите значение при публикации. Вот простое быстрое решение для возврата непроверенного значения из флажка ,

<input type="hidden" name="cbox" value="0" />
<input type="checkbox" name="cbox" value="1" /> 
1 голос
/ 03 декабря 2010

Возвращается 0, потому что это ложно, и это то, что флажки возвращаются, когда не отмечен. Просто добавьте if в ваш метод обработки CI, который возвращает любое значение, которое вы хотите, если значение флажка == 0.

Edit: Просто чтобы уточнить, это не имеет никакого отношения к вашему CI. Я имею в виду, что возвращение 0 - это то, что возвращает сама форма - это поведение флажка. Чтобы изменить значение, нужно быстро проверить код CI, чтобы изменить значение 0 на желаемое. Я предполагаю, что вы где-то используете значение для создания своей электронной почты.

0 голосов
/ 27 ноября 2012

Если флажок не установлен, данные для него не отправляются. (Если он установлен, атрибут значения отправляется). Попытка чтения $_POST['checkbox'] приведет к ошибке PHP (если вы не используете empty() или isset(), которые являются специальными языковыми конструкциями).

this->input->post('checkbox') вернет FALSE, если данные флажка не установлены, т.е. если они не были проверены. Боюсь, нет способа изменить это значение. Если вы хотите другое значение, вам нужно будет вручную сравнить FALSE и использовать другое значение.

Наконец, когда вы отправляете FALSE в базу данных, используя API доступа к БД CodeIgniter, она преобразуется в «0». Это будет хорошо работать для логического столбца в базе данных. Когда вы читаете логический столбец, вы получите тот код, который предпочитает ваша база данных для TRUE, независимо от того, что вы отправили изначально. (С возможным исключением sqlite, который слабо типизирован, немного похож на PHP).

0 голосов
/ 03 декабря 2010
if( ! $_POST['checkbox']) $_POST['checkbox'] = '';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...