如何在PHP的数组循环中检查多个单选按钮

时间:2019-02-27 19:14:54

标签: php html

我已经获取数据并在单选按钮处于循环状态时显示在单选按钮中,并且也将数据插入到循环中。

问题是我只能从表单中检查一个单选按钮,对于每个问题,必须选中一个单选按钮,而我不能。

layout

<form  method="POST" class="form-horizontal">
<?php 
$count=1;
$que="SELECT * FROM addques WHERE quz_id='$var'";
$dbd=mysqli_query($conn,$que);
    while ($cmd=mysqli_fetch_array($dbd)) {
            $quest=$cmd['qusname'];
            $ans_id=$cmd['ans_id'];
            $opt1=$cmd['qpta'];
            $opt2=$cmd['optb'];
            $opt3=$cmd['optc'];
            $opt4=$cmd['optd'];
            $answ=$cmd['answer'];?>
<b>Question &nbsp; <?php echo $count++;?>&nbsp;:<br><?php echo $quest;?></b><br><br>
<fieldset>
<input type="hidden" name="ansid[]" value="<?php echo $ans_id; ?>">
<input type="radio" name="ans[]" value="1"><?php echo $opt1;?><br><br>
<input type="radio" name="ans[]" value="2"><?php echo $opt2;?><br><br>
<input type="radio" name="ans[]" value="3"><?php echo $opt3;?><br><br>
<input type="radio" name="ans[]" value="4"><?php echo $opt4?><br><br><br>
</fieldset>
<?php } ?>
<button type="submit" name="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div> 
<?php
$i=0;
if (isset($_POST['submit'])) {
while ( $i<$noquestions  ) { 
$query="INSERT INTO `result`(  `quz_id`, `ans_id`, `answer`) VALUES('";
$query.=$var .  "', '"; 
$query.=$_POST['ansid'][$i] .  "', '"; 
$query.=$_POST['ans'][$i] .  "' )";
$db=mysqli_query($conn,$query);
$i++;
}
}
?>

1 个答案:

答案 0 :(得分:0)

出现该错误的原因是您给了name="ans[]",因此每次索引值递增。

您可以通过提供以下代码对其进行修复

<input type="radio" name="ans" value="1">
<input type="radio" name="ans" value="2">

以此类推。

您一直在循​​环内使用单选按钮,因此可以通过设置name="ans[$i]"之类的循环变量来使用它。

echo '<input type="radio" name="ans['.$i.']" value="1">
<input type="radio" name="ans['.$i.']" value="2">';