Multiple radio button array for php form

血红的双手。 提交于 2019-12-17 19:56:24

问题


I'm new to this. I'm studying web development and have to create a php response form for a questionnaire which then inputs into a database. I'm having trouble with the radio buttons. I can't create the right code that makes an array and displays the answers in the response form/page.

This is my code:

<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>

I know the answer can relate to the isset function but I don't know how to code it. Could someone possibly teach or help me out here?


回答1:


When you're unsure of how to handle the HTML markup that you've set up, you should var_dump($_POST) the values that are sent to the PHP handler page so you know what the format will look like, that way you can proceed from there.

When I created your HTML and tested it with a var_dump and some random selections, the output was

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

Notice that there is an array within the $_POST['answer'] variable. So you should foreach over each element in that array to handle each respective value:

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

If you need to work with the answer number that you defined in the POST array, you can foreach with a key:

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

You can, of course, access your answer by its number directly:

if (!empty($_POST['answer'][1])) { // To ensure that the value is being sent
    // do stuff with $_POST['answer'][1]
}



回答2:


I don't imagine that this is quite what you are looking to do. If instead you give the three questions different names:

<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>

then in php all you will need to do is find the values using the $_POST variable as such

<?php 
    echo $_POST['answer1'];
    echo $_POST['answer2'];
    echo $_POST['answer3'];
?>


来源:https://stackoverflow.com/questions/20960036/multiple-radio-button-array-for-php-form

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!