0
<?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>&nbsp;</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)); ?>

这段代码有什么问题。请详细告诉我。
谢谢你。

4

3 回答 3

2

isset()访问前始终使用

if (isset($ra[$i])  && isset($ans[$i]) && isset($qes[$i])){
  // your code
}

或者

array_key_exists($i, $ra);

或者

于 2013-07-06T17:59:16.137 回答
0

看起来您希望所有数组都具有相同的大小,但$ra与其他数组相比并非如此,因此

 echo "Right Option".$ra[$i]."<br>";

导致通知。看起来你需要修正你的$ra尺寸。

于 2013-07-06T17:59:16.563 回答
0

$ra数组中的成员没有那么多$ans,所以当你点击循环的第二次迭代时,没有任何东西$ra[1]可以显示。你需要弄清楚为什么 和 的长度$ra不同$ans- 如果没有更多关于你在做什么的信息,我们很难知道。

正如@Nikola 所指出的,在尝试使用isset(). $ra[1]有东西在里面不存在是否有效,$ans[1]只有你自己能回答。

从您的代码中推断出很多,看起来好像 $ra 旨在指示正确的答案。在这种情况下,只有一个,所以你应该使用$ra[0]而不是$ra[$i],它将始终显示 $ra 数组中的第一个元素。当然,我可能会误解您的代码的意图,所以 YMMV。

于 2013-07-06T18:00:58.250 回答