Php checkbox

Checkboxes are those HTML elements that behave like toggle switches. So, unlike the radio buttons, checkboxes do not enforce to select an option from a group of options; we can select as much as we want. In this example, we will see how to deal with these checkboxes in PHP.

For this example, we will use:

  • Linux Mint (17.03) as Operating System.
  • Apache HTTP server (2.4.7).
  • PHP (5.5.9).


1. Preparing the environment

Below, commands to install Apache and PHP are shown:

sudo apt-get update sudo apt-get install apache2 php5 libapache2-mod-php5 sudo service apache2 restart

Note: if you want to use Windows, installing XAMPP is the fastest and easiest way to install a complete web server that meets the prerequisites.

2. HTML Form

Let’s see with a simple form how the checkboxes work:


<!DOCTYPE html> <head>     <meta charset="UTF-8">     <title>HTML form</title>     <style>         html {             width: 35%;         }         .form-input {             margin-bottom: 20px;         }     </style> </head> <body>     <form method="GET" action="process.php">         <div class="form-input">             <label for="name">Your name</label>             <input type="text" name="name" id="name" required>         </div>         <div class="form-input">             <fieldset>                 <legend>Programming languages you have worked with</legend>                 <div>                     <input type="checkbox" name="programming-languages[]" id="python" value="Python">                     <label for="python">Python</label>                 </div>                 <div>                     <input type="checkbox" name="programming-languages[]" id="php" value="PHP" checked>                     <label for="php">PHP</label>                 </div>                 <div>                     <input type="checkbox" name="programming-languages[]" id="haskell" value="Haskell">                     <label for="haskell">Haskell</label>                 </div>                 <div>                     <input type="checkbox" name="programming-languages[]" id="other" value="Other">                     <label for="other">Other</label>                 </div>             </fieldset>         </div>         <div class="form-input">             <input type="submit" value="Submit">         </div>     </form> </body> </html>

For which the following rendering will be generated:

The are some things that we have to know:

  • We can set the checkboxes checked from the beginning with the checked attribute (line 28). By default, the checkboxes are unchecked.
  • Note that each checkbox name ends with []. This is for accessing the selected values of the checkboxes with the same name as an array. If we leave the same name but with the square brackets in the end, PHP will only be able to retrieve the last item.
  • HTML5 does not provide a standard way of marking a group of checkboxes as required. This can be achieved with JavaScript, but it’s not the aim of this example.

3. Form handling

The only difference in the form processing with other form elements is that PHP takes the elements of a checkbox group as an array, as previously mentioned.

But the way the data is submitted is not different from other elements. This is an example of the data generated for our GET request:


As you can see, there are two different values with the same name, which makes sense since we have chosen different values that share the name. But PHP will know that, when retrieving these values, it has to put them inside an array, because of the square brackets []
placed in the end of each parameter name.

So, processing this form data would be pretty simple, as shown in the following script:


<?php  /**  * Checks if the given parameters are set. If one of the specified parameters  * is not set, die() is called.  *  * @param $parameters The parameters to check.  */ function checkGETParametersOrDie($parameters) {     foreach ($parameters as $parameter) {         isset($_GET[$parameter]) || die("'$parameter' parameter must be set.");     } }  /**  * Print the submitted data. If the value is an array, is imploded to a string.  *  * @param array $data The form data, with $name => $value format.  */ function printData($data) {     echo 'You have submitted the form with the following data:<br>';     echo '<ul>';      foreach ($data as $name => $value) {         echo "<li>$name: ";          if (is_array($value)) {             $value = implode(', ', $value);         }          echo "<b>$value</b>";         echo '</li>';     }      echo '</ul>'; }  // Flow starts here.  checkGETParametersOrDie([     'name',     'programming-languages' ]);  $name = $_GET['name']; $programmingLanguages = $_GET['programming-languages']; // An array.  printData([     'Name' => $name,     'Programming languages you have worked with' => $programmingLanguages ]);

The way of retrieving the data is exactly the same (line 46), but in this case we have to be aware that we are receiving an array.

Because of this, when printing the form data (or doing anything else), we have to know if we are dealing with an array or not. For this, we have to check explicitly if it is an array, with is_array() function, to then manage it as appropriate. In this case, we just implode it to a string.

So, the script could generate an output like the following:

You have submitted the form with the following data:

  • Name: Julen
  • Programming languages you have worked with: PHP, Other

4. Generating checkbox structures dynamically

It’s worth mentioning how we could generate checkbox structures dynamically for a given data structure, that can be achieved with a script like the following:


<?php  /**  * Generates checkboxes, for group => values => checked/unchecked structures,  * wrapping each group in a fieldset.  *  * @param array $data The data to create the checkboxes for.  * @return string The generated checkboxes.    
/ function generateCheckboxes($data) {     $checkboxes = '';     foreach ($data as $group => $values) {         $fieldset = $values['fieldset'];         $options = $values['options'];         $checkboxes .= '<fieldset>';         $checkboxes .= "<legend>$fieldset</legend>";         foreach ($options as $option => $checked) {             $checked = ($checked) ? 'checked' : '';             $checkboxes .= '<div>';             $checkboxes .= "<input type='checkbox' name='$group" . '[]' . "' id='$option' value='$option' $checked>";             $checkboxes .= "<label for='$option'>$option</label>";             $checkboxes .= '</div>';         }         $checkboxes .= '</fieldset>';     }     return $checkboxes; }

Placing each checkbox group inside a fieldset (which is not actually necessary, just structure matters).

The following snippet shows an input data example for this function, which would generate the same output as the shown in section 2:


// ...  $programmingLanguages = [     'programming-languages' => [         'fieldset' => 'Programming languages you have worked with',         'options' => [             'Python' => false,             'PHP' => true,             'Haskell' => false,             'Other' => false         ]     ] ];  $checkboxes = generateCheckboxes($programmingLanguages);  echo $checkboxes;  echo 'Generated HTML code:<br>'; echo "<xmp>$checkboxes</xmp>";

5. Summary

In this example we have seen how to manage the checkbox elements with PHP, paying attention at the way of retrieving the values of a checkbox group, which is different from retrieving other input types, since they are defined as arrays. We have also seen how to generate checkbox structures dynamically with a simple PHP function that generates the HTML code from a data structure.

6. Download the source code

This was an example of checkboxes with PHP.

Форма из одного флажка

Давайте создадим простою форму с одним флажком (checkbox).


<form action="checkbox-form.php" method="post">  Вам нужен доступ в интернет?  <input type="checkbox" name="formWheelchair" value="Yes" />  <input type="submit" name="formSubmit" value="Submit" />  </form>   

В PHP скрипте (файл checkbox-form.php) возможно прочитать значение поля посредством массива $_POST. Если $_POST['formWheelchair'] присвоено значение YES, то флажок в был выбран. Если флажок не выбран, то переменная $_POST['formWheelchair'] не установлена.

Вот пример обработки формы на PHP:


<?php  if(isset($_POST['formWheelchair']) &&   $_POST['formWheelchair'] == 'Yes')  {   echo "Требуется доступ.";  }  else  {   echo "Доступ не нужен.";  }  ?>     

Переменной $_POST['formWheelchair'] присвоено значение YES, так как значение атрибута value тега input равно «YES».


 <form action="checkbox-form.php" method="post"> 

Атрибуту value вместо YES можно установить 1. Не забудьте ваш обновить ваш PHP код, соответственно установленным значениям.

Группа флажков

Нередко возникают ситуации, когда в форму необходимо вставить несколько флажков. Особенно в том случае, когда пользователю необходимо предоставить право выбора из нескольких вариантов. Это важно, так как, например, переключатель (radio) можно выбрать всего один.

Давайте составим форму, которая предоставит пользователю несколько вариантов выбора.


<form action="checkbox-form.php" method="post">  Выберите здания, которые необходимо посетить. <br />  <input type="checkbox" name="formDoor[]" value="A" />Acorn Building<br />    <input typ.    
ot; value="Submit" /> </form>

Пожалуйста отметьте, что все флажки имеют одно имя (formDoor[ ]). Одно имя говорит о том, что все флажки связаны между собой. Квадратные скобки указывают на то, что все значения будут доступны из одного массива. То есть $_POST['formDoor'] не вернет строку, как в примере выше, вместо нее возвратится массив, содержащий значения флажков, которые были выбраны пользователем.

Например, если я отмечу все флажки, $_POST['formDoor'] вернет массив из {A,B,C,D,E}. В примере ниже мы получаем и отображаем все значения массива.


<?php   $aDoor = $_POST['formDoor'];   if(empty($aDoor))   {   echo("Вы ничего не выбрали.");   }   else   {   $N = count($aDoor);   echo("Вы выбрали $N здание(й): ");   for($i=0; $i < $N; $i++)   {   echo($aDoor[$i] . " ");   }   }  ?> 

Функция empty пригодится на тот случай, если пользователь ничего не выбрал. Если же массив не пустой, подсчитываем количество выбранных флажков при помощи функции count и выводим все значения при помощи цикла for.

Если выбран флажок ‘Acorn Building’, то массив будет содержать значение ‘A’.


  • Linux Смена пользователя в консоли (терминал) — Как зайти под пользователем (перелогиниться)
  • [!] Паскаль — Онлайн Учебник для начинающих изучать программирование с нуля. Справочник. Примеры кода. [Pascal]
  • Деплой — что это в программировании (deploy)
  • #10 Цикл For в Паскаль. Цикл с известным числом повторений (цикл с параметром). Тело цикла.
  • #3 Типы данных в языке Pascal. Объявление переменных. Целые числа integer. Оператор присваивания. Инициализация в Паскаль
  • latex Cистема уравнений. Фигурная скобка — пример команд
  • python Число элементов в списке ("массиве") — длина списка — len — как узнать
  • "Черта над" символом — что означает в математике. Значения
  • #12.1 Цикл Repeat/Until "с постусловием" в Паскаль
  • #14 Процедуры и функции в Паскаль. Как объявлять и использовать
  • telegram Сделать админом в группе (чате) — как дать права

  • [!] LaTeX СПРАВОЧНИК — Примеры символов, кода, обозначений и команд [латекс, латех]
  • .gitignore Пример файла — как исключать из репозитория (контроля версий) файлы и папки
  • Урок #3 — Ввод/Вывод данных в Pascal — Write(). Writeln(), Read(), Readln() — отличия, примеры использования
  • yii2 Создание/удаление таблицы с внешним ключом (foreign key, миграция)
  • mysql LIMIT OFFSET синтаксис. Примеры sql запросов
  • git check-ignore Список игнорируемых файлов по .gitignore — команда вывода. Проверить какие папки игнорируются, а какие не
  • #13.1 Вложенные циклы в Паскаль. Примеры кода, решения задач — For, While, Repeat/Until
  • Pascal Получить случайное число в диапазоне — пример
  • Экономическая система, ее сущность и функции. Структурные элементы экономической системы.
  • mysql Связь "Многие ко Многим" — пример SQL кода таблиц с пояснениями. Таблица связи (ON DELETE CASCADE)
  • linux Как подключиться по SSH к компьютеру (серверу) по сети (через командную строку, терминал)
  • telegram Как отправить сообщение "самому себе"
  • python super — Метод super() в Python
  • latex Жирный шрифт — пример команды
  • latex Примерно приблизительно равно — знак, команда
  • linux Удалить все файлы в данной директории — рекурсивно и нереукрсивно. В том числе скрытые
  • latex Больше или равно Меньше или равно — команды, "как выводится" (с прямой и обычной чертой равенства)
  • Рынок, его сущность, функции и виды. Структура и инфраструктура рынка.
  • linux Как скопировать папку с содержимым в другую папку/директорию — пример команд

Как в PHP получить значение checkbox

От автора: приветствую вас, друзья. Из данной статьи, которая написана прежде всего для новичков, вы узнаете, как в PHP получить значение checkbox из формы и обработать его. Эта функция может потребоваться достаточно часто на сайте, например, когда вам нужно в зависимости от того, отмечен был чекбокс или нет выполнить тот или иной код. Приступим.

Исходные файлы текущей статьи вы можете скачать по ссылке.

Классическая ситуация использования в форме чекбокса, который необходимо проверить, это подтверждение соглашения с некими условиями. Еще одним классическим вариантом будет использование поля checkbox в форме авторизации, когда пользователь хочет запомнить себя, чтобы не вводить повторно данные через некоторое время.

Давайте остановимся на втором варианте и создадим простую форму авторизации, в которой присутствует поле checkbox Запомнить меня.

Вот такая симпатичная форма у нас получилась:

Php checkbox

В качестве обработчика мы указали файл login.php, на который будет отправлена форма. Как принять данные из обычных полей типа text и подобных мы знаем, для этого достаточно обратиться к соответствующему массиву и элементу в этом массиве. Поскольку данные передаются методом POST, то для того, чтобы обратиться к логину пользователя, мы используем следующую запись: $_POST[‘login’]. Именно здесь будет храниться переданный логин пользователя.

С этим все понятно. А как же получить значение чекбокса в PHP? Здесь все также просто. Давайте попробуем распечатать на экран весь массив $_POST целиком в обработчике:

И отправим заполненную форму, отметив чекбокс:

Php checkbox

Как видим, в массиве $_POST находятся все элементы формы. При этом значение элемента remember, который отвечает за чекбокс в нашем случае, равно строке on.

Теперь попробуем не отмечать чекбокс и отправим форму еще раз.

Php checkbox

Сейчас элемента remember в массиве уже нет. Получается, для того, чтобы проверить, был ли отмечен checkbox, достаточно просто проверить наличие соответствующего элемента в массиве. Также дополнительно можно проверить, равен ли он строке on или же возвращает ли его значение true. Последняя проверка, в принципе, для современных браузеров вряд ли является обязательной, но старые браузеры, помнится, могли создавать в массиве пустой элемент, даже если чекбокс не был отмечен.

В итоге PHP код с учетом обработки значения чекбокса будет выглядеть примерно так:

Вот, собственно, и вся премудрость. Ну а на этом текущую статью мы завершаем. Дополнительно по работе с формами вы можете посмотреть этот урок. Удачи!

Php checkbox

Single check box

Let’s create a simple form with a single check box.

In the PHP script (checkbox-form.php), we can get the submitted option from the $_POST array. If $_POST['formWheelchair'] is “Yes”, then the box was checked. If the check box was not checked, $_POST['formWheelchair'] won’t be set.

Here’s an example of PHP handling the form:

The value of $_POST[‘formSubmit’] is set to ‘Yes’ since the value attribute in the input tag is ‘Yes’.

You can set the value to be a ‘1’ or ‘on’ instead of ‘Yes’. Make sure the check in the PHP code is also updated accordingly.

Check box group

There are often situations where a group of related checkboxes are needed on a form. The advantage of check box group is that the user can select more than one options. (unlike a radio group where only one option could be selected from a group).

Let’s build on the above example and give the user a list of buildings that he is requesting door access to.

Please note that the checkboxes have the exact same name ( formDoor[ ] ). Also notice that each name ends in [ ]. Using the same name indicates that these checkboxes are all related. Using [ ] indicates that the selected values will be accessed by PHP script as an array. That is, $_POST[‘formDoor’] won’t return a single string as in the example above; it will instead return an array consisting of all the values of the checkboxes that were checked.

For instance, if I checked all the boxes, $_POST['formDoor'] would be an array consisting of: {A,B,C,D,E}. Here’s an example of how to retrieve the array of values and display them:

If no checkboxes are checked, $_POST['formDoor'] will not be set, so use the “empty” function to check for this case. If it’s not empty, then this example just loops through the array ( using the “count” function to determine the size of the array ) and prints out the building codes for the buildings that were checked.

If the check box against ‘Acorn Building’ is checked, then the array will contain value ‘A’. similarly, if ‘Carnegie Complex’ is selected, the array will contain C.

Check whether a particular option is checked

It is often required to check whether a particular option is checked out of all the available items in the checkbox group. Here is the function to do the check:

In order to use it, just call IsChecked(chkboxname,value). For example,

Одиночный чекбокс

Создадим простую форму с одним чекбоксом:

В PHP скрипте (checkbox-form.php) мы можем получить выбранный вариант из массива $_POST. Если $_POST[‘formWheelchair’] имеет значение «Yes«, то флажок для варианта установлен. Если флажок не был установлен, $_POST[‘formWheelchair’] не будет задан.

Вот пример обработки формы в PHP:

Для $_POST[‘formSubmit’] было установлено значение “Yes”, так как это значение задано в атрибуте чекбокса value:

Вместо “Yes” вы можете установить значение «1» или «on«. Убедитесь, что код проверки в скрипте PHP также обновлен.

Группа че-боксов

Иногда нужно вывести в форме группу связанных PHP input type checkbox. Преимущество группы чекбоксов заключается в том, что пользователь может выбрать несколько вариантов. В отличие от радиокнопки, где из группы может быть выбран только один вариант.

Возьмем приведенный выше пример и на его основе предоставим пользователю список зданий:

Обратите внимание, что input type checkbox имеют одно и то же имя (formDoor[]). И что каждое имя оканчивается на []. Используя одно имя, мы указываем на то, что чекбоксы связаны. С помощью [] мы указываем, что выбранные значения будут доступны для PHP скрипта в виде массива. То есть, $_POST[‘formDoor’] возвращает не одну строку, как в приведенном выше примере; вместо этого возвращается массив, состоящий из всех значений чекбоксов, которые были выбраны.

Например, если я выбрал все варианты, $_POST[‘formDoor’] будет представлять собой массив, состоящий из: {A, B, C, D, E}. Ниже приводится пример, как вывести значение массива:

Если ни один из вариантов не выбран, $_POST[‘formDoor’] не будет задан, поэтому для проверки этого случая используйте «пустую» функцию. Если значение задано, то мы перебираем массив через цикл с помощью функции count(), которая возвращает размер массива и выводит здания, которые были выбраны.

Если флажок установлен для варианта «Acorn Building«, то массив будет содержать значение ‘A‘. Аналогично, если выбран «Carnegie Complex«, массив будет содержать C.

Проверка, выбран ли конкретный вариант

Часто требуется проверить, выбран ли какой-либо конкретный вариант из всех доступных элементов в группе HTML input type checkbox. Вот функция, которая осуществляет такую проверку:

Чтобы использовать ее, просто вызовите IsChecked (имя_чекбокса, значение). Например:

Single Checkbox Example

In this “Terms and Conditions” example, we process a single checkbox with PHP.

As you can see, we had to check to see if the POST variable “terms_of_service” existed. We did this by using the isset function. If the name of the checkbox exists as a POST variable, then it is safe to assume that the user has ticked it.

But what about multiple choice checkboxes? Well, that’s a little more complex…

Multiple Checkboxes & PHP.

In this example, we allow our users to select their favourite fruits:

Step-by-step explanation:

  1. We set up a “whitelist array”, which contains all of the checkbox values that the user is allowed to select. This is important as we don’t want to find ourselves in a situation where a user is modifying our form values with Firebug or Chrome’s Developer Tools (this would allow them to add checkbox options that don’t exist).
  2. We created an empty PHP array called $fruits. Once the form has been processed, this array will contain all of the values that the user has ticked.
  3. If you are using grouped / multiple choice checkboxes, then it is important to note that your POST variable will be an array.
  4. In the example above, we loop through this POST array containing the selected checbox values. We also validate them by making sure that they are in our whitelist array ($fruitOptions).
  5. If you look at the form, you’ll see that we named each checkbox “fruits[]”. The square brackets tell PHP that these checkbox values should be held in an array.

Чекбокс — элемент формы, который позволяет отмечать галочкой интересующий пункт пользователя. Разберем способы взаимодействия чекбоксов с формой (выгрузка с отмеченными галочками) + массив чекбоксов в 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»>

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

//обрабатываем какие чекбоксы нажаты, а какие нет
//имя чекбоксов в виде массива 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 отправке нажатый чекбокс (опять же через цикл) и выделить его галочкой:

//отмечаем нажатый чекбокс
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), которое надо проверить на «выбранность» пользователем.

You May Also Like

About the Author: admind

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.