Множество радиокнопок для формы php

0

Я новичок в этом. Я изучаю веб-разработку и должен создать форму ответа php для анкеты, которая затем вводится в базу данных. У меня проблемы с переключателями. Я не могу создать правильный код, который создает массив и отображает ответы в форме ответа/странице.

Это мой код:

<form name="modulequestionnaire" method="post" action="tania.responseform.php" />

<p><i>Rate each question from 6 to 1, six being strongly 
agree and one being strongly disagree.</i></p>

1. I think the module guide/student handbook provided enough information about the 
module content, organisation and assessment.<br/>

6<input type="radio" name="answer[1]" value="6"> 5<input type="radio" name="answer[1]" value="5"> 
4<input type="radio" name="answer[1]" value="4"> 3<input type="radio" name="answer[1]" value="3"> 
2<input type="radio" name="answer[1]" value="2"> 1<input type="radio" name="answer[1]" value="1">
</p>

2.The module was well organised.<br/>

6<input type="radio" name="answer[2]" value="6"> 5<input type="radio" name="answer[2]" value="5"> 
4<input type="radio" name="answer[2]" value="4"> 3<input type="radio" name="answer[2]" value="3"> 
2<input type="radio" name="answer[2]" value="2"> 1<input type="radio" name="answer[2]" value="1"> 
</p>

3.The Learning Resource Centre provided adequate materials for the module.<br/>

6<input type="radio" name="answer[3]" value="6"> 5<input type="radio" name="answer[3]" value="5"> 
4<input type="radio" name="answer[3]" value="4"> 3<input type="radio" name="answer[3]" value="3"> 
2<input type="radio" name="answer[3]" value="2"> 1<input type="radio" name="answer[3]" value="1"> 
</p>

Я знаю, что ответ может относиться к функции isset, но я не знаю, как его кодировать. Может ли кто-нибудь учить или помочь мне здесь?

  • 0
    Можете ли вы опубликовать вашу существующую попытку PHP?
  • 0
    @HC_ Я хочу создать ответы на вопросы выше.
Показать ещё 4 комментария
Теги:
arrays
forms
radio-button

2 ответа

5
Лучший ответ

Если вы не знаете, как обрабатывать настроенную HTML-разметку, вы должны var_dump($_POST) значения, которые отправляются на страницу обработчика PHP, чтобы вы знали, как будет выглядеть формат, таким образом, вы можете исходим оттуда.

Когда я создал свой HTML и протестировал его с помощью var_dump и некоторых случайных var_dump, результат был

array(2) { ["answer"]=> array(3) { [1]=> string(1) "5" [2]=> string(1) "3" [3]=> string(1) "4" } ["submit"]=> string(6) "Submit" }

Обратите внимание, что в переменной $_POST['answer'] имеется массив. Таким образом, вы должны foreach над каждым элементом в этом массиве для обработки каждого соответствующего значения:

foreach ($_POST['answer'] as $answer) {
    // do stuff with the answer
}

Если вам нужно работать с номером ответа, который вы определили в массиве POST, вы можете foreach с помощью ключа:

foreach ($_POST['answer'] as $answerNum => $answer) {
    // do stuff with $answerNum and $answer
}

Разумеется, вы можете напрямую получить ответ на свой номер:

if (!empty($_POST['answer'][1])) { // To ensure that the value is being sent
    // do stuff with $_POST['answer'][1]
}
  • 0
    Спасибо! Это сработало.
  • 0
    Большое спасибо за это, сэр.
0

Я не думаю, что это совсем то, что вы ищете. Если вместо этого вы зададите три вопроса с разными именами:

<form name="modulequestionnaire" method="post" action="tania.responseform.php" />

<p><i>Rate each question from 6 to 1, six being strongly 
agree and one being strongly disagree.</i></p>

1. I think the module guide/student handbook provided enough information about the 
module content, organisation and assessment.<br/>

6<input type="radio" name="answer1" value="6"> 5<input type="radio" name="answer1" value="5"> 
4<input type="radio" name="answer1" value="4"> 3<input type="radio" name="answer1" value="3"> 
2<input type="radio" name="answer1" value="2"> 1<input type="radio" name="answer1" value="1">
</p>

2.The module was well organised.<br/>

6<input type="radio" name="answer2" value="6"> 5<input type="radio" name="answer2" value="5">



4<input type="radio" name="answer2" value="4"> 3<input type="radio" name="answer2" value="3"> 
2<input type="radio" name="answer2" value="2"> 1<input type="radio" name="answer2" value="1"> 
</p>

3.The Learning Resource Centre provided adequate materials for the module.<br/>

6<input type="radio" name="answer3" value="6"> 5<input type="radio" name="answer3" value="5"> 
4<input type="radio" name="answer3" value="4"> 3<input type="radio" name="answer3" value="3"> 
2<input type="radio" name="answer3" value="2"> 1<input type="radio" name="answer3" value="1"> 
</p>

то в php все, что вам нужно будет сделать, это найти значения, используя переменную $_POST как таковую

<?php 
    echo $_POST['answer1'];
    echo $_POST['answer2'];
    echo $_POST['answer3'];
?>
  • 0
    Это работает, но вытекает из цели урока, который OP должен узнать о создании и обработке массивов POST . Это особенно полезно для POST кода с использованием массивов POST потому что это означает меньше работы для добавления в один вопрос, если код сделан правильно.
  • 0
    Правда, думаю, я бы лично держался подальше от почтовых массивов, потому что они могут быстро запутаться. Я действительно использую почтовые массивы только тогда, когда у меня есть различное количество вводимых данных, таких как множественный выбор, но я не уверен, почему вы захотите использовать массив в этом случае. За исключением урока ... хорошо, вы выиграли этот раунд :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню