PHP, если флажок был установлен, а теперь нет (и наоборот)? - PullRequest
0 голосов
/ 08 апреля 2011

Я думаю, что это выполнимо?Может быть?

Вот мой вход для флажка:

<input  type='checkbox' name='cb_name' id='cb_name' checked='checked' />

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

У меня есть другие поля вводаформа.И если флажок не был затронут или проверен, то СОХРАНИТЕ форму, не выполняя условие флажка.

Если флажок был установлен раньше и теперь установлен! = 'Флажок', то сделайте это.

&&

Если флажок был! = 'Проверен' раньше, а теперь = проверен, то сделайте это.

&&

и, наконец, если флажок был оставлен в покое (НЕТ ЗНАЧЕНИЯ БЫЛО ИЗМЕНЕНО) затем выполните другие операции с формой, не запуская оператор условия checkbox ??

Ответы [ 2 ]

5 голосов
/ 08 апреля 2011

Нет, вы не можете проверить, установлен ли он или нет.

Если флажок не установлен, он вообще не передается, поэтому, если вы хотите проверить значение, выНачнем с чего-то вроде isset($_POST['cb_name']).

1 голос
/ 08 апреля 2011

Для этого у вас должна быть какая-то причина, чтобы решить при отображении формы, установлен ли флажок или нет. Это ваше начальное состояние.

Поскольку мы не знаем, как вы решаете это, почему бы не добавить скрытое поле со значением, подобным этому, установив значение для соответствия, если флажок установлен (т. Е. Установлен / не установлен):

<input type="hidden" name="cb_hidden" value="<?php print $checkedOrNot; ?>" />

Мы не знаем, в каком состоянии установлен флажок, однако это должно решить простую идею абстрактно

<?php
$checkedOrNot = '';
if(/* the condition that decides if things are checked */) {
    $checkedOrNot = 'checked';
}
?><input type="checkbox" name="cb_name" checked="<?php print $checkedOrNot; ?>" />
<input type="hidden" name="cb_hidden" value="<?php print $checkedOrNot; ?>" />

Тогда, когда вы получите ваши данные

<?php
if(isset($_POST['cb_name']) && $_POST['cb_hidden'] != 'checked') {
    //if the checkbox was changed to checked
} elseif(!isset($_POST['cb_name']) && $_POST['cb_hidden'] == 'checked') {
    //if the checkbox was changed to unchecked
}

Это решение без необходимости в предыдущем состоянии

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