Мультичекбокс в PHP. Массив чекбоксов

Мультичекбокс в PHP. Массив чекбоксов

Чекбокс - элемент формы, который позволяет отмечать галочкой интересующий пункт пользователя. Разберем способы взаимодействия чекбоксов с формой (выгрузка с отмеченными галочками) + массив чекбоксов в PHP при отправке формы.

Немного теории чекбоксов

  • Обычный чекбокс задается так: <input type="checkbox" name="news" value="Да" > Подписка
  • Чтобы чекбокс был нажатым, достаточно поставить атрибут checked="checked".
  • Чтобы понять, что чекбокс передается при POST отправке формы достаточно сделать так: if (isset($_POST['news'])) { echo $_POST['news']; } В этом случае, если галочка отмечена, выведется значение Да.

Теперь представим, что у нас много чекбоксов, для универсальности работы, добавим в них одно имя в виде массива news_add[]:

<form action="" method="post">
<input type="checkbox" name="news_add[]" value="1" <?php echo ac_checbox($_POST["news_add"], '1'); ?> > 1<br />
<input type="checkbox" name="news_add[]" value="2" <?php echo ac_checbox($_POST["news_add"], '2'); ?> > 2<br />
<input type="checkbox" name="news_add[]" value="3" <?php echo ac_checbox($_POST["news_add"], '3'); ?> > 3<br />
<input type="submit" value="Подтвердить" name="addcatbutfsdfs">
</form>

Теперь имя чекбоксов в массиве и если мы передадим их значения с формы, то нужно как-то узнать, значение какого чекбокса было нажато, для этого используем for цикл:

<?php
//обрабатываем какие чекбоксы нажаты, а какие нет
//имя чекбоксов в виде массива news_add
if (isset($_POST['addcatbutfsdfs'])) {
$news_add = $_POST["news_add"];
$news_addthis = '';
for($a = 0; $a<count($news_add); $a++) {
//записываем все нажатые чекбоксы в строку через ## Например: 1##2## 
$news_addthis .= $news_add[$a].'##';
}
echo 'Нажаты: '.$news_addthis; }
?>

Таким образом, за счет этого обработчика мы легко можем определить через цикл нажатые галочки. В том же цикле можно сразу произвести нужные действия с выбранными чекбоксами.

Также вы заметили функцию ac_checbox(), она поможет определить при каждой POST отправке нажатый чекбокс (опять же через цикл) и выделить его галочкой:

<?php
//отмечаем нажатый чекбокс
function ac_checbox($ac_post, $ac_value) {
for($a = 0; $a<count($ac_value); $a++) {
if($ac_post[$a] == $ac_value) return ' checked="checked" ';
} }
?>

В функцию передаются 2 параметра: POST массива чекбоксов и значение (value), которое надо проверить на "выбранность" пользователем.

| | Мультичекбокс в PHP. Массив чекбоксов | Чекбокс - элемент формы, который позволяет отмечать галочкой интересующий пункт пользователя. Разберем способы взаимодействия чекбоксов с формой (выгр | http://blogprogram.ru/wp-content/uploads/2017/09/788-131x131.jpg

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>