- 论坛徽章:
- 0
|
5可用积分
大家好,我现在要做一个在线考试系统,有单项选择题,多项选择题等,答题中的单项选择题我已经做好了,前台的关键代码如下:
<form name="form1" method="post" action="proccess.php" target="_blank">
<?
for($i=1;$i<=5;$i++)
{
$num_01=radiobutton_01.$i;
?>
<table width="662" border="0">
<tr>
<td width="656"> <?=$i?> 超级用户的口令必须:<?=$num?></td>
</tr>
<tr>
<td><input type="radio" name="<?=$num_01?>" value="A">
A、至少4个字节,并且是大小写敏感的</td>
</tr>
<tr>
<td><input type="radio" name="<?=$num_01?>" value="B">
B、至少6个字节,并且是大小写敏感的</td>
</tr>
<tr>
<td><input type="radio" name="<?=$num_01?>" value="C">
C、至少4个字节,并且是大小写不敏感的</td>
</tr>
<tr>
<td><input type="radio" name="<?=$num_01?>" value="D">
D、至少6个字节,并且是大小写不敏感的</td>
</tr>
</table>
<?
}
?>
<div align="center">
<input type="submit" name="Submit" value="完成提交">
</div>
</form>
而接受处理传过来的值的后台页面proccess.php的关键代码为:
一、单选题:
<?
for($i=1;$i<=5;$i++)
{
$num_01=radiobutton_01.$i;
?>
<?=$i?>
<? echo $$num_01;?>
<?
}
?>
这样已经能正常的按照一定的格式把题目的答案传过来,可是到多项选择题的时候就出了问题,我也想用同单项选择题的思路及类似方法来做,前台关键代码如下:
<form name="form2" method="post" action="proccess.php" target="_blank">
<?
for($i=1;$i<=2;$i++)
{
$num="num".$i;
?>
<table width="662" border="0">
<tr>
<td width="656"><?=$i?>
通常Internet上存在的全隐患有:</td>
</tr>
<tr>
<td><p>
<label>
<input name="<?=$num?>[]" type="checkbox" id="<?=$num?>[]" value="A">
</label>
A、网络建立缺乏安全防范措施,没有安装防护设备<br>
</p>
</td>
</tr>
<tr>
<td> <input name="<?=$num?>[]" type="checkbox" id="<?=$num?>[]" value="B">
B、系统不完备的安全配置?</td>
</tr>
<tr>
<td> <input name="<?=$num?>[]" type="checkbox" id="<?=$num?>[]" value="C">
C、不完
善的系统管理</td>
</tr>
<tr>
<td> <input name="<?=$num?>[]" type="checkbox" id="<?=$num?>[]" value="D">
D、通信协议上存在的基本安全问题(IP,TCP,UDP等)</td>
</tr>
</table>
<?
}
?>
<input type="checkbox" name="checkbox[]" value="checkbox01">
<input type="checkbox" name="checkbox[]" value="checkbox02">
<div align="center">
<input type="submit" name="Submit" value="完成提交">
</div>
</form>
而接受处理传过来的值的后台页面proccess.php的关键代码为:
二、多选题:
<?
echo "<br>";
for($i=1;$i<=2;$i++)
{
?>
<?=$i?>
<?
for($j=0;$j<=3;$j++)
{
echo $num1[$j]; //用这句时已经能把第一个多选题的值正确显示,但只能显示一题
$num_02="num".$i."[".$j."]"; //我想通过循环定义多个变量
echo $num_02; //这样已经能把前台复选框的变量符号显示出来,如num1[0]num1[1]num1[2] // num1[3] ; 2 num2[0]num2[1]num2[2]num2[3]
//于是我就想用同单项选择时的一下,再在其变量符号前加上 $ 符号就可显示其值
echo $$num_02; //可是当用这句是什么都显示不了
}
?>
<?
echo "<br>";
}
?>
关键的问题是多项选择题中的前台的页面倒是已经能顺利地把值传到后台的页面来了,可以在后台的页面中就不能用循环语句来接收,关键的问题就在如下代码:
<?
for($j=0;$j<=3;$j++)
{
echo $num1[$j]; //用这句时已经能把第一个多选题的值正确显示,但只能显示一题
$num_02="num".$i."[".$j."]"; //我想通过循环定义多个变量
echo $num_02; //这样已经能把前台复选框的变量符号显示出来,如num1[0]num1[1]num1[2] // num1[3] ; 2 num2[0]num2[1]num2[2]num2[3]
//于是我就想用同单项选择时的一下,再在其变量符号前加上 $ 符号就可显示其值
echo $$num_02; //可是当用这句是什么都显示不了
}
?>
请问就用这样的方法怎么样才能实现用循环语句来接收多道多项选择题传过来的值?
谢谢! |
最佳答案
查看完整内容
checkbox命名为:answer_题目IDPHP中循环题目,即可获得$_POST['answer_'.题目ID]的数组。处理即可
|