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

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

Всем привет!
Задача реализовать возможность вкл/выкл.
Решил делать через checkbox`сом, но у него есть особенность, если он выключен он ничего не возвращает.
Есть ли такой механизм который возвращает true / false ?
  • Вопрос задан
  • 1000 просмотров
Решения вопроса 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 поле особо шаловливые ручки могут и подменить, прислав тебе нечто экзотическое вместо его значения.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 09:32
25000 руб./за проект
24 апр. 2024, в 09:27
13000 руб./за проект
24 апр. 2024, в 09:20
10000 руб./за проект