<?php
$ans=$_REQUEST['ans'];
$qes=$_REQUEST['qes'];
$ra=$_REQUEST['right_op'];
$count=0;
for($i=0; $i<count($ans); $i++)
{
echo "Question".$qes[$i]"<br>";
echo "Ans".$ans[$i]"<br>";
echo "Right Option".$ra[$i]."<br>";
if(isset($ans[$i]) == isset($ra[$i]))
{
$count++;
}
}
?>
提交第一页时,显示
注意:未定义的偏移量:第9行的C:\ xampp \ htdocs \ result.php中的1
发布数据的第一页。
<?php
$i=1;
$x=0;
$y=0;
$z=0;
do{
?>
<tr>
<td width="30"></td>
<td width="30" height="27"><?php echo "$i";?></td>
<td width="493"><?php echo $row_question['question']; ?>
<input type="hidden" name="q_id[<?php// echo $y; ?>]" id="q_id" value=" <?php echo $row_question['q_id']; ?>" />
<input type="hidden" name="qes[<?php echo $y; ?>]" id="qes" value="<?php echo $row_question['question']; ?>" /><input name="right_op[<?php echo $z; ?>]" type="hidden" id="right_op" value="<?php echo $row_question['right_op']; ?>" /></td>
</tr>
<tr>
<td> </td>
<td height="59" align="right"><h3>A)</h3>
<h3>B)</h3>
<h3>C)</h3>
<h3>D)</h3></td>
<td><h3>
<label>
<input type="radio" name="ans[<?php echo $x; ?>]" value="A" id="ans_0" />
<font color="#FFFFFF"><?php echo $row_question['op_a']; ?></font> </label>
<br />
<label>
<input type="radio" name="ans[<?php echo $x; ?>]" value="B" id="ans_1" />
<font color="#FFFFFF"><?php echo $row_question['op_b']; ?></font> </label>
<br />
<label>
<input type="radio" name="ans[<?php echo $x; ?>]" value="C" id="ans_2" />
<font color="#FFFFFF"><?php echo $row_question['op_c']; ?></font> </label>
<br />
<label>
<input type="radio" name="ans[<?php echo $x; ?>]" value="D" id="ans_3" />
<font color="#FFFFFF"><?php echo $row_question['op_d']; ?></font> </label>
<br />
</h3></td>
</tr>
<tr>
<td height="17" colspan="3"><hr /></td>
</tr><?php
$i++;
$x++;
$y++;
$z++;
} while ($row_question = mysql_fetch_assoc($question)); ?>
此代码有什么问题。请详细告诉我。
谢谢。
答案 0 :(得分:2)
在访问
之前始终使用isset()
if (isset($ra[$i]) && isset($ans[$i]) && isset($qes[$i])){
// your code
}
或
array_key_exists($i, $ra);
或
答案 1 :(得分:0)
看起来你希望所有数组都是相同的大小,而$ra
的情况与其他数组相比并非如此,因此
echo "Right Option".$ra[$i]."<br>";
引起通知。您似乎需要修正$ra
尺寸。
答案 2 :(得分:0)
$ra
数组中的成员数量与$ans
没有那么多,因此当您点击循环的第二次迭代时,$ra[1]
中没有任何内容可以显示。您需要弄清楚为什么$ra
和$ans
的长度不同 - 如果没有关于您正在做什么的更多信息,我们很难知道。
正如@Nikola指出的那样,在尝试使用isset()
输出之前,您应该始终检查以确保您正在访问的索引中有某些内容。当$ra[1]
中存在某些内容时,$ans[1]
中是否存在某些内容是否有效是唯一可以回答的内容。
从您的代码中推断出很多内容,看起来$ ra旨在表明正确的答案。在这种情况下,只有一个,所以你应该使用$ra[0]
而不是$ra[$i]
,这将始终显示$ ra数组中的第一个元素。当然,我可能会误解你的代码的意图,所以YMMV。