我已经获取数据并在单选按钮处于循环状态时显示在单选按钮中,并且也将数据插入到循环中。
问题是我只能从表单中检查一个单选按钮,对于每个问题,必须选中一个单选按钮,而我不能。
<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 <?php echo $count++;?> :<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++;
}
}
?>
答案 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">';