Как я могу получить имена или идентификаторы нескольких выбранных флажков в 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:
В каждом случае вам нужно проверить наличие имени флажка в массиве $ _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']); ?>