получение нескольких флажков имен / id с php

Как я могу получить имена или идентификаторы нескольких выбранных флажков в submit, используя PHP? Ниже приведен пример формы. Благодарю.

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="checkbox" name="orange" id="orange"> <input type="checkbox" name="apple" id="apple"> <input type="checkbox" name="sky" id="sky"> <input type="checkbox" name="sea" id="sea"> <br> <br> <input type="submit" name="Submit" value="Submit"> </form> 

Значения флажка передаются из формы только в том случае, если установлен флажок. Более того, это атрибут name, а не идентификатор.

Существует несколько способов обработки флажков в PHP:

  1. Дайте всем флажкам то же имя, за которым следует пара квадратных скобок, поэтому весь набор рассматривается как массив. В этом случае дайте каждому флажку значение.
  2. Дайте каждому флажку другое имя и значение.
  3. Дайте каждому флажку другое имя, но не значение.

В каждом случае вам нужно проверить наличие имени флажка в массиве $ _POST.

Например:

 <input type="checkbox" name="color[]" id="orange" value="orange"> <input type="checkbox" name="color[]" id="apple" value="apple"> 

Чтобы получить значения для этих флажков:

 if (isset($_POST['color'])) { $colors = $_POST['color']; // $colors is an array of selected values } 

Однако, если каждый флажок имеет другое имя и явное значение, подобное этому:

 <input type="checkbox" name="orange" id="orange" value="orange"> <input type="checkbox" name="apple" id="apple" value="apple"> 

Вам все еще нужно использовать isset ():

 if (isset($_POST['orange'])) { // orange has been set and its value is "orange" } 

Если вы не установили значение, значение по умолчанию «включено», но оно не будет в массиве $ _POST, если оно не было выбрано, поэтому вам все равно нужно использовать isset ().

Вы должны указать те же имена:

 <input type="checkbox" name="selection[]" value="orange"> <input type="checkbox" name="selection[]" value="apple"> <input type="checkbox" name="selection[]" value="sky"> <input type="checkbox" name="selection[]" value="sea"> 

Затем перебираем массив $ _POST ['selection'] в PHP.

Вы не получите идентификаторы, но имена будут ассоциативными индексами в массиве $_POST$_REQUEST ). ПРИМЕЧАНИЕ. Они будут доступны только в массиве, если они были проверены клиентом.

if ($_POST['oragne'] == 'on')

Вы можете настроить их для публикации на PHP в виде массивов, если вы создадите их, как показано ниже:

 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="checkbox" name="box_group_1[oragne]" id="oragne"> <input type="checkbox" name="box_group_1[apple]" id="apple"> <input type="checkbox" name="box_group_1[sky]" id="sky"> <input type="checkbox" name="box_group_1[sea]" id="sea"> <br> <br> <input type="submit" name="Submit" value="Submit"> </form> <?php print_r($_POST['box_group_1']); ?>