У меня есть много радиобоксов на одной странице моего сайта.

Я знаю, что можно отправить все параметры в виде массива, которым можно напрямую управлять с помощью PHP.

<input type="radio" name="SOMETHING_HERE" value="1" />

Есть несколько радиогрупп, и я бы хотел, чтобы все они были подчинены одному массиву.

Все, что я хотел бы знать, это синтаксис, который должен использоваться в name="".

1
ThePixelPony 7 Апр 2014 в 14:26

3 ответа

Лучший ответ

Вы можете получить форму одним из следующих способов.

<input type="radio" name="name[]" value="1" />
<input type="radio" name="name[]" value="2" />

Или же

<input type="radio" name="question['question1']" value="1" />
<input type="radio" name="question['question2']" value="2" />

Там вы сами устанавливаете определение массива. Надеюсь, это ответит на ваш вопрос.

1
Santosh Achari 7 Апр 2014 в 14:42
Просто чтобы уточнить, будет ли массив PHP иметь следующий формат: $_POST['question'] = array("question1" => 1, "question2" => 2)?
 – 
ThePixelPony
7 Апр 2014 в 14:44
Да. Вы можете попробовать посмотреть.
 – 
Santosh Achari
7 Апр 2014 в 14:48

HTML выглядит так:

<input type="radio" name="name[]" value="1" />
<input type="radio" name="name[]" value="2" />

PHP обращается к нему так:

<?php
$_POST['name'] = array('1','2');

Несколько замечаний:

  • Порядок в массиве по сравнению с тем, как он существует в HTML, не гарантируется.
0
deed02392 7 Апр 2014 в 14:32
Как PHP может получить к нему доступ следующим образом: $_POST['answers'] = array("QuestionId" => Answer);?
 – 
ThePixelPony
7 Апр 2014 в 14:38
Используя value="foo" name="answers[QuestionId]", вы получите $_POST['answers'] = array("QuestionId" => "foo");, но помните, что вы должны соблюдать уникальность QuestionId для каждого узла input.
 – 
deed02392
7 Апр 2014 в 15:06

Используйте как это

<input type="radio" name="optionname[]" value="1" />
<input type="radio" name="optionname[]" value="2" />
.
.
3
Rakesh Shetty 7 Апр 2014 в 14:29