Как узнать, установлен ли флажок в PHP
Как прочитать, установлено ли значение в чекбоксе на PHP?
Ответ 1
Если ваша HTML-страница выглядит так:
,
п осле отправки формы вы можете проверить ее так:
isset($_POST[‘test’])
или
if ($_POST[‘test’] == ‘value1’) .
Ответ 2
Zend Framework использует хороший хак для чекбоксов, который вы также можете сделать сами. Каждый сгенерированный флажок ассоциируется с одноименным скрытым полем, расположенным непосредственно перед флажком и имеющим значение « 0 » . Тогда, если ваш флажок имеет значение « 1 » , вы всегда получите значение « 0 » или « 1 » в результирующем GET или POST.
Ответ 3
При использовании флажков в виде массива:
,
в ам следует использовать in_array() :
if(in_array(‘Orange’, $_POST[‘food’]))
echo ‘Orange был выбран!’;
>
Не забудьте сначала проверить, что массив установлен, например:
if(isset($_POST[‘food’]) && in_array(.
Ответ 4
Пусть ваш html для вашего чекбокса будет похож на:
Затем, после отправки формы, вам нужно проверить его:
if (isset($_POST[‘check1’]))
// флажок установлен
> else
// альтернативный вариант
>
Предположим, что check1 должно быть именем вашего флажка. А если метод отправки вашей формы — GET, то вам нужно проверить переменные $_GET, например так:
if (isset($_GET[‘check1’]))
// флажок установлен
>
Ответ 5
Я использую этот трюк уже несколько лет, и он отлично работает без каких-либо проблем для отмеченного состояния флажка при использовании с PHP и базой данных.
HTML код: (для страницы добавления):
?>>
Код PHP (используется для добавления/редактирования страниц):
$status = $_POST[‘status’];
if ($status == 1)
$status = 1;
> else
$status = 0;
>
Подсказка: значение всегда будет пустым, если только пользователь не проверил его. Итак, у нас уже есть PHP-код, чтобы перехватить его и сохранить значение равным 0. Затем просто используйте переменную $status для работы с базой данных.
Ответ 6
Но приведенные выше примеры работают только тогда, когда вы хотите использовать INSERT значение, и не полезны для UPDATE различных значений в разных столбцах, поэтому вот мой маленький трюк:
// Установка всех значений в 0
$queryMU =’UPDATE ‘.$db->dbprefix().’settings SET menu_news = 0, menu_gallery = 0, menu_events = 0, menu_contact = 0’;
$stmtMU = $db->prepare($queryMU);
$stmtMU->execute();
if(!empty($_POST[‘check_menus’]))
foreach($_POST[‘check_menus’] as $checkU)
try
// обновление только выбранных значений
$queryMU =’UPDATE ‘.$db->dbprefix().’settings SET ‘.$checkU.’= 1’;
$stmtMU = $db->prepare($queryMU);
$stmtMU->execute();
> catch(PDOException $e)
$msg = ‘Error: ‘ . $e->getMessage();>
>
>
HTML:
Секрет в том, чтобы сначала обновить все VALUES (в данном случае в 0), а поскольку отправляются только проверенные значения, это означает, что все, что вы получите, должно быть установлено в 1, поэтому все, что вам необходимо, устанавливается во флажках в значение 1.
Пример для PHP, но он применим для всех языков.
Ответ 7
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Как на php определить нажатый чекбокс через $_POST

Если вы занимаетесь разработкой веб-приложений на языке PHP, то наверняка вы сталкивались с необходимостью определения нажатых чекбоксов на форме. Если вы хотите узнать, как это сделать через $_POST, то этот материал для вас.
$_POST в PHP — это массив, который содержит значения, отправленные пользователем на сервер через форму. Каждый элемент этого массива соответствует одному полю формы. Для получения значения, отправленного через чекбокс, нужно использовать индекс, соответствующий атрибуту «name» чекбокса.
Допустим, у нас есть форма, которая содержит один чекбокс с атрибутом «name» равным «checkbox1»:
Теперь, чтобы определить, был ли нажат этот чекбокс при отправке формы, нужно проверить, присутствует ли элемент с индексом «checkbox1» в массиве $_POST:
if (isset($_POST[‘checkbox1’])) <
// Checkbox 1 был выбран
> else <
// Checkbox 1 не был выбран
>
Здесь мы использовали функцию isset(), чтобы проверить, существует ли элемент с индексом «checkbox1» в массиве $_POST. Если элемент существует, значит, чекбокс был выбран.
Если чекбокс отмечен, то в массиве $_POST будет значение «1», которое было задано в атрибуте «value». Если же чекбокс не отмечен, то в массиве $_POST не будет элемента с индексом «checkbox1».
Теперь вы знаете, как определить нажатый чекбокс на PHP через $_POST. Надеюсь, этот материал был полезен для вас.
Обработка чекбоксов в PHP
В этой статье мы расскажем о input type checkbox HTML , и том, как они обрабатываются в PHP .
Обновлено: 2022-09-11 19:32:19 Вадим Дворников автор материала
Одиночный чекбокс
Создадим простую форму с одним чекбоксом:
В PHP скрипте ( checkbox-form.php ) мы можем получить выбранный вариант из массива $_POST . Если $_POST[‘formWheelchair’] имеет значение » Yes «, то флажок для варианта установлен. Если флажок не был установлен, $_POST[‘formWheelchair’] не будет задан.
Вот пример обработки формы в PHP :
else < echo "Do not Need wheelchair access."; >?>
Для $_POST[‘formSubmit’] было установлено значение “ Yes ”, так как это значение задано в атрибуте чекбокса value :
Вместо “ Yes ” вы можете установить значение » 1 » или » on «. Убедитесь, что код проверки в скрипте PHP также обновлен.
Группа че-боксов
Иногда нужно вывести в форме группу связанных PHP input type checkbox . Преимущество группы чекбоксов заключается в том, что пользователь может выбрать несколько вариантов. В отличие от радиокнопки, где из группы может быть выбран только один вариант.
Возьмем приведенный выше пример и на его основе предоставим пользователю список зданий:
Обратите внимание, что input type checkbox имеют одно и то же имя ( formDoor[] ). И что каждое имя оканчивается на [] . Используя одно имя, мы указываем на то, что чекбоксы связаны. С помощью [] мы указываем, что выбранные значения будут доступны для PHP скрипта в виде массива. То есть, $_POST[‘formDoor’] возвращает не одну строку, как в приведенном выше примере; вместо этого возвращается массив, состоящий из всех значений чекбоксов, которые были выбраны.
Например, если я выбрал все варианты, $_POST[‘formDoor’] будет представлять собой массив, состоящий из: . Ниже приводится пример, как вывести значение массива:
else < $N = count($aDoor); echo("Вы выбрали $N здание(й): "); for($i=0; $i < $N; $i++) < echo($aDoor[$i] . " "); >> ?>
Если ни один из вариантов не выбран, $_POST[‘formDoor’] не будет задан, поэтому для проверки этого случая используйте » пустую » функцию. Если значение задано, то мы перебираем массив через цикл с помощью функции count() , которая возвращает размер массива и выводит здания, которые были выбраны.
Если флажок установлен для варианта » Acorn Building «, то массив будет содержать значение ‘ A ‘. Аналогично, если выбран » Carnegie Complex «, массив будет содержать C .
Проверка, выбран ли конкретный вариант
Часто требуется проверить, выбран ли какой-либо конкретный вариант из всех доступных элементов в группе HTML input type checkbox . Вот функция, которая осуществляет такую проверку:
function IsChecked($chkname,$value) < if(!empty($_POST[$chkname])) < foreach($_POST[$chkname] as $chkval) < if($chkval == $value) < return true; >> > return false; >
Чтобы использовать ее, просто вызовите IsChecked ( имя_чекбокса, значение ). Например:
if(IsChecked('formDoor','A')) < //сделать что-то . >//или использовать в расчете . $price += IsChecked('formDoor','A') ? 10 : 0; $price += IsChecked('formDoor','B') ? 20 : 0;
Скачать пример кода
Скачать PHP код примера формы с PHP input type checkbox .
Как проверить checkbox php
HTML-код с формой:
. < FORMNAME="LAYOUTFORM" ACTION="checkbox_test.php" METHOD=POST> < INPUTTYPE=CHECKBOX NAME="cbName" VALUE="this is dummy value (need to be set)" ID="Forms Checkbox1"> < INPUTTYPE=SUBMIT NAME="GoButton" VALUE="go!" ID="Forms Button1"> < /FORM> .
< ?phpif (!$cbName) < echo 'Флажок cbName СБРОШЕН '; > if ($cbName) < echo 'Флажок cbName УСТАНОВЛЕН '; > //Значение параметра VALUE ("this is dummy value (need to be set)") // выведется, если флажок был установлен echo $cbCreateAcronymsTable.' '; ?>
Логика работы CHECKBOX проста — если он установлен пользователем, то переменной $cbName будет присвоено значение VALUE, иначе $cbName не получит значение. Поэтому параметру VALUE обязательно должно быть присвоено любое значение, иначе переменной флажка $cbName никогда не будет присвоено значение и PHP-код проверить факт установки флажка не сможет.
[Ссылки]