表格带有单选按钮&复选框发送到PHP

时间:2011-09-22 10:11:49

标签: php html forms checkbox

Harmiih真的帮助了我的脚本(http://stackoverflow.com/questions/7510546/html-form-name-php-variable)。基本上我有一个问题表。表单从表中检索问题,然后我需要选择的答案转到answer.php。一切都在使用收音机但是只有复选框,它才会发送最后选中的复选框。有人可以帮助我吗?

形式

$sql1="SELECT * FROM ex_question WHERE test_name = '$tid' AND q_type = 'mr' ORDER BY RAND() LIMIT 5";
$result1=mysql_query($sql1);

echo "<form method='post' action='answer.php'>";

while($row1 = mysql_fetch_array($result1))
{
    $test_name=$row1['test_name'];
    $q_nr=$row1['q_nr'];
    $q_type=$row1['q_type'];
    $question=$row1['question'];
    $option1=$row1['option1'];
    $option2=$row1['option2'];


    echo "<P><strong>$q_nr $question</strong><BR>";

    if ($q_type != 'mr') {

        if($option1!="") {
            echo "<input type='radio' name='question[$q_nr]' value='$option1'>$option1<BR>";
        } else {
            echo '';
        }
        if($option2!="") {
            echo "<input type='radio' name='question[$q_nr]' value='$option2'>$option2<BR>";
        } else {
            echo '';
        }
    } else {
        if($option1!="") {
            echo "<input type='checkbox' name='question[$q_nr]' value='$option1'>$option1<BR>";
        } else {
            echo '';
        } 
        if($option2!="") {
            echo "<input type='checkbox' name='question[$q_nr]' value='$option2'>$option2<BR>";
        } else {
            echo '';
        } 
    }

    echo "<BR>";
    echo "<BR>";
    echo "</p>";
}
echo "<input type='submit' value='Send Form'>";
echo "</form>";

answer.php

<?php
//Key is $q_nr and $answer is selected $option
foreach($_POST['question'] as $key => $answer) {
    echo $key;
    echo $answer;
}
?>

2 个答案:

答案 0 :(得分:1)

您需要在复选框中包含不同的name值。

例如name='question1[$q_nr]'name='question2[$q_nr]'。相同的名称仅适用于单选按钮的分组元素。

或者将它们作为数组传递:

name='question[$q_nr][1]'name='question[$q_nr][2]'

答案 1 :(得分:1)

您可以将其用作名称:

name="question[$q_nr][]"

这将确保您返回一个包含所选复选框的所有值的数组。