checkbox не передеает значение в форме

165
02 февраля 2020, 20:10

Если chekboxне выбран, то при submit формы не передается значение false. Как сделать чтобы он передавался?

Answer 1
<input type="checkbox" name="checkbox" value="true" />
<input type="hidden" name="checkbox" value="false" />
bool checked = Request.Form["checkbox"] != "false";
Answer 2

Напрямую никак. Если чекбокс не выбран, он вообще не передаётся на сервер. В отличие, например, от пустого текстового поля. Это легко проверить с помощью isset, отправив пустой type="text" и пустой type="checkbox":

<form action="" method="POST">
  <input type="text" name="text" />
  <input type="checkbox" name="checkbox" value="true" />
  <input type="submit" name="submit" value="отправить" />
</form>
<?
if(isset($_POST['text'])) {
    echo "text_true"; //выведет "text_true": значения нету, но элемент в массиве $_POST есть
}
else {
    echo "text_false";
}
if(isset($_POST['checkbox'])) {
    echo "check_true";
}
else {
    echo "check_false"; //выведет "check_false", т.е. в принципе нету такого элемента в массиве $_POST
}
?>

Если очень надо передавать на сервер true/false состояния чекбокса, можно делать проверку на клиенте и заносить результат в поле hidden, а уже значение hidden получать на сервере:

<form action="" method="POST">
  <input type="text" name="text" />
  <input type="checkbox" name="checkbox" />
  <input type="hidden" name="hidden" />
  <input type="submit" name="submit" value="отправить" />
</form>
$('form').submit(function(){
    if(!$('[name="checkbox"]').prop('checked')) {
        $('[name="hidden"]').val(false);
    }
    else {
        $('[name="hidden"]').val(true);
    }
});
<? echo $_POST['hidden']; ?>
READ ALSO
SCSS: в чём разница между конструкциями `@mixin -&gt; @include` и `%name -&gt; @extend %name`?

SCSS: в чём разница между конструкциями `@mixin -> @include` и `%name -> @extend %name`?

В SCSS есть возможность объявить свойства в тн

175
передача массива в форме

передача массива в форме

Можно ли как то заставить передавать в форме массива (например таблицу)? Или для этого обязательно формировать данные отдельно и после ajax-ом...

185
Переместить объект при клике на него

Переместить объект при клике на него

В объект <div id="text"></div> добавляется не элемент, на который кликнули, а [object HTMLElement]В чём может быть проблема?

193
Медиа плеер с выбором стримера

Медиа плеер с выбором стримера

Чуть ниже представлена картинка на примере которой я буду объяснять что я хочу и хочу услышать ваши советы по тому как это можно реализовать

181