php - 在 php 中单击提交时如何验证答案并显示答案

标签 php mysql ajax

在我的数据库中,我有 2 个表,一个用于问题,一个用于答案。

现在,问题是当我点击答案并提交时,它应该在同一个页面的 div 中显示它是否正确,当它被点击时它显示它是否正确。

代码在这里:

<?php 
  session_start();
  require_once("scripts/connect_db.php");
  $arrCount = "";

  if(isset($_GET['question'])){
     $question = preg_replace('/[^0-9]/', "", $_GET['question']);
     $output = "";
     $answers = "";
     $q = "";
     $dv="";
     $dv2="";


     $singleSQL = mysql_query("SELECT * FROM questions WHERE id='$question' LIMIT 1");
     while($row = mysql_fetch_array($singleSQL)){
        $id = $row['id'];
        $thisQuestion = $row['question'];
        $type = $row['type'];
        $subject =$row['subject'];
        $exam =$row['exam'];
        $explan =$row['explan'];
        $question_id = $row['question_id'];
        $s ='<strong>'.$subject.'</strong>';
        $e ='<small>'.$exam.'</small>';
        $q = '<h2>'.$thisQuestion.'</h2>';
        $ex ='<div id="welcomeDiv" style="display:none;" class="expl" >'.$explan.'</div>';
        $sql2 = mysql_query("SELECT * FROM answers WHERE question_id='$question' ORDER BY rand()");
        while($row2 = mysql_fetch_array($sql2)){
            $answer = $row2['answer'];
            $correct = $row2['correct'];
            $answers .= '<table class="table table-hover table-bordered"> <tr>
            <td class="chk"><label style="cursor:pointer;"><input type="radio" name="rads" value="'.$correct.'">'.$answer.'</label></td>
            </tr></table>
            <input type="hidden" id="qid" value="'.$id.'" name="qid"><br />
            ';

            $answer=$_POST[$correct];
            if(isset($answer)&&$correct==1){

            echo    $dv.='<div style="display:none; color=green;" id="welcomeDiv" id="dv">Your answer '.$answer.'  is correct</div>';}

            else{
                 $dv2.='<div style="display:none; color=red;" id="welcomeDiv" id="dv2">Your answer '.$answer.'  is worng</div>';}



        }
        $output = ''.$s.','.$e.''.$q.','.$dv.''.$dv2.''.$answers.''.$ex.'<input type="button" name="answer" value="check" onclick="showDiv();check_asnwer()" id="" />';
        echo $output;
       }
    }


  ?>

我正在尝试,但它向我显示如下错误:

     Notice: Undefined index: 0 in F:\wamp\www\quiz\questions.php on line 38
     Notice: Undefined index: 1 in F:\wamp\www\quiz\questions.php on line 38
     Notice: Undefined index: 0 in F:\wamp\www\quiz\questions.php on line 38
     Notice: Undefined index: 0 in F:\wamp\www\quiz\questions.php on line 38

我的代码有什么问题吗,请帮助我,我需要这个来完成我的项目。

提前致谢

最佳答案

        $answer=$_POST[$correct];
        if (isset($answer)) {

应该是

        if (isset($_POST[$correct])) {
            $answer = $_POST[$correct];

您不能尝试分配 FROM 一个可能未定义的值,然后在 wards 之后测试是否存在。您必须直接测试 $_POST 值是否存在,然后在确认它确实存在后分配。

关于php - 在 php 中单击提交时如何验证答案并显示答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18213422/

相关文章:

php - EasyAPNS 在生产中获取排队消息时 - 空 clientid 列

php - 用我的应用程序打包一个 php 自包含可执行文件

php - 将 target=_blank 添加到外部链接

mysql - SQL 查询优化 join union distinct

php - PHP返回mp3文件

mysql - SQL Group By 减少三个表中的行

MySQL数据库连接

jQuery-如何在一个ajax调用中调用多个ajax调用

php - 在 XAMPP 环境中使用 ajax/jQuery 将值从 HTML 输入表单传递到 PHP 到 MySQL

c# - 在 View 中显示来自 Controller 的 json 数据