2011-09-22 66 views
0

Harmiih真的帮我用我的脚本(http://stackoverflow.com/questions/7510546/html-form-name-php-variable)。基本上我有一张有问题的桌子。表单从表格中检索问题,然后我需要选择的答案转到answer.php。一切工作与无线电按钮,但与复选框它只发送最后选中的复选框。有人可以帮帮我吗?形式与单选按钮和复选框发送到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; 
} 
?> 

回答

1

您可以使用此姓名:

name="question[$q_nr][]" 

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

+0

谢谢JNDPNT的回答帮我,在我的形式我用: 名称= '的问题[$ q_nr] []' 和我answer.php: 的foreach($ _ POST [ '问题'] as $ key => $ answer){ echo $ answer [0]; echo $ answer [1]; } – Wilest

+0

顺便说一下,你不必手动回复所有的复选框答案,因为你不知道用户将选择多少复选框。一个例子,你可以做到这一点。 [链接](http://pastebin.com/vjS44ZMi) – Harmiih

+0

@Harmiih谢谢,现在就试试吧。 – Wilest

1

您需要复选框有不同name值。例如name='question1[$q_nr]'name='question2[$q_nr]'。相同的名字只适用于女巫单选按钮的分组元素。

或者将它们作为数组:

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