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;
}
?>
答案 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][]"
这将确保您返回一个包含所选复选框的所有值的数组。