StaDi
@StaDi
Курьер в it отделе

Альтернатива checkbox или как его заставить возвращать false если он не активен?

Всем привет!
Задача реализовать возможность вкл/выкл.
Решил делать через checkbox`сом, но у него есть особенность, если он выключен он ничего не возвращает.
Есть ли такой механизм который возвращает true / false ?
  • Вопрос задан
  • 1013 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Был старый-старый хак, думаю, что он работает и сейчас
<input type = hidden name = cbx value = 0>
<input type = checkbox name = cbx value = 1>


Работает, как я понимаю, за счет того, что последующее значение затирает предыдущее.
То есть, запрос выглядит как
..&cbx=0&cbx=1&...
в итоге в скрипте получается что-то вроде идущих подряд
$_GET['cbx'] = 0;
$_GET['cbx'] = 1;

И в итоге остается только один.

Отсюда становится понятно, что важно соблюдать порядок - хидден должен идти всегда первым.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@IceJOKER
Web/Android developer
if(isset($_POST['selected']))
echo 'Selected';
else
echo 'Not selected';
Ответ написан
$_POST += array('selected' => 0);
на правах говнокода.
Ответ написан
@Fortop
Tech/Team lead
Вопрос решается все же на стороне сервера.

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

Когда ты получаешь данные из запроса (POST/GET), то создаешь копию списка ожидаемых параметров и их значений.

Дальше идет проверка полученных параметров.
Если параметр есть в списке ожидаемых, то его значение проверяем на допустимость (например почта ли это) и записываем полученное значение.

В итоге работаешь именно с этим списком.

P.S. А hidden поле особо шаловливые ручки могут и подменить, прислав тебе нечто экзотическое вместо его значения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы