Эффективный способ получить 'n' количество параметров радио из формы HTML, используя PHP - PullRequest
0 голосов
/ 12 июня 2018

В настоящее время я работаю над программой викторины, где форма содержит около 20 вопросов.Используя PHP, я знаю, как получить результаты на странице действий.

<html>
<body>
<form action = "result.php">
Question 1:
<input type='radio' name='Q1' value='Op1' /> Op1
<input type='radio' name='Q1' value='Op2' /> Op2
<input type='radio' name='Q1' value='Op3' /> Op3
<input type='radio' name='Q1' value='Op4' /> Op4

Question 2:
<input type='radio' name='Q2' value='Op1' /> Op1
<input type='radio' name='Q2' value='Op2' /> Op2
<input type='radio' name='Q2' value='Op3' /> Op3
<input type='radio' name='Q2' value='Op4' /> Op4
.
.
.
.
</form>
</body>
</html>

result.php

<?PHP
$answer1 = $_POST['Q1'];
$answer2 = $_POST['Q2'];
.
.
?>

Это не кажется аккуратным, есть ли эффективный способ выбрать опцию, выбранную на передней панеликонец для всех этих вопросов, а не писать 20 заявлений.

TIA

1 Ответ

0 голосов
/ 12 июня 2018

Один из вариантов, который позволяет итерировать определенные ответы переключателей, - сохранять их в своем собственном массиве.

Например,

<input type="radio" name="radio[Q1]" value="Op1">
<input type="radio" name="radio[Q1]" value="Op2">

<input type="radio" name="radio[Q2]" value="Op1">
<input type="radio" name="radio[Q2]" value="Op2">

Затем вы можете итерировать значения с помощью foreach loop

foreach($_POST['radio'] as $question => $answer) {
    // $question will be "Q1", "Q2", etc
    // $answer will be the chosen radio button value
}

Наличие всех переключателей под одним именем (т. Е. "radio") позволяет отличать эти ключи и значения от других полей формы, которые вы, возможно, захотите включить.


Кроме того, ваш <form> должен иметь method="post", но я подумал, что вы, вероятно, уже имеете это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...