2015-05-04 98 views
0

我已经在一台机器上写了相同的代码,它工作正常,但在其他机器相同的代码给错误意外的输入结束。为什么会这样呢,这让我疯狂。任何人都可以帮忙,请。这些是我工作的文件。意外的输入结束php jQuery

编辑:我正在做一个小型在线测试应用程序的学习目的。在测试开始时,出现第一个问题,点击下一步按钮时,url会变为应该出现的状态,但下一个问题不会出现,并且控制台中的错误表示输入的意外结束。由于我所有的括号都可以,所以我无法找到错误。请帮忙!!

TestStart.php

<?php 
    session_start(); 
    if(isset($_SESSION['TestId'])) 
    { 
     $TestId = $_SESSION['TestId']; 
    } 
    include('Config.php'); 
    include('Reference.php'); 
    $query = "select * from testquestions where testid='".$TestId."'"; 
    $res = mysql_query($query); 

    if(mysql_num_rows($res) > 0) 
    { 
     $z = array(); 
     while($fetch = mysql_fetch_array($res)) 
     { 
      $z[]=$fetch['QId']; 
     } 
     $y = implode(",", $z); 

     $_SESSION['QIds']=$z; 

    } 
    else{ 

     echo mysql_error(); 
    } 
?> 
<body> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-md-12" id="resultDiv"> 
       <div class="col-md-12" id="qtext"></div> 
       <div class="col-md-12"> 

        <div class="col-md-3"> 
         <div class="col-md-12"> 
          <input type="radio" id="optionA"name="options" value="A"><span id="optA"></span> 
         </div> 
         <div class="col-md-12"> 
          <input type="radio" id="optionB" name="options" Value="B"><span id="optB"></span> 
         </div> 
        </div> 

        <div class="col-md-3"> 
         <div class="col-md-12"> 
          <input type="radio" id="optionC" name="options" value="C"><span id="optC"></span> 
         </div> 
         <div class="col-md-12"> 
          <input type="radio" id="optionD" name="options" value="D"><span id="optD"></span> 
         </div> 
        </div> 
       </div> 
       <div id="nextbuttondiv"></div> 
      </div> 
     </div> 
    </div> 
    <script> 
     $(document).ready(function(){ 
      <?php 
       if(isset($_GET['qno'])&&isset($_GET['qindex'])) 
       { 
        $qno = $_GET['qno']; 
        $qindex = $_GET['qindex']; 
       } 
       else{ 
        $qno = '1'; 
        $qindex = '0'; 
       } 

      ?> 
      var qno = <?php echo $qno;?>; 
      var qindex = <?php echo $qindex;?>; 
      var qidsarrCm = '<?php echo $y;?>'; 
      var arrQid = qidsarrCm.split(","); 

      var totalQuestions = arrQid.length; 


      $.ajax({ 
       type : "post", 
       url : "GetQuestionForTest.php", 
       data : { 
        "quId" : arrQid[qindex] 
       }, 
       dataType : "json", 
       success : function(data){ 
        alert('xy'); 
        console.log(data); 
        $.each(data, function(){ 
         var qText = this.questiontext; 
         var optionA = this.OptionA; 
         var optionB = this.OptionB; 
         var optionC = this.OptionC; 
         var optionD = this.OptionD; 
         var nxtBtn = this.NextButton; 

         $('#qtext').text(qText); 
         $('#optA').text(optionA); 
         $('#optB').text(optionB); 
         $('#optC').text(optionC); 
         $('#optD').text(optionD); 
         $('#nextbuttondiv').html(nxtBtn); 
        }); 
       }, 
       error: function(data, statusCode, xhr){ 
        alert(statusCode); 
        console.log(data); 
        console.log(xhr); 
       } 
      }); 
      $('input[type=radio]').on('click',function(){ 
       $('.nxtbtn').removeAttr('disabled'); 
      }); 



      $('body').on('click','.nxtbtn', function(){ 
       $.ajax({ 
        type : "post", 
        url : "SaveTestAnswers.php", 
        data : { 
         "qid" : arrQid[qindex], 
         "ansId" : $('input[name=options]:checked').val(), 
         "stuId" : <?php echo $_SESSION['CurrentUser'];?>, 
         "testId" : <?php echo $TestId;?> 
        }, 
        dataType : "json", 
        success : function(data){ 

         if(data.toString() == "true"){ 
          qindex = qindex + 1; 
          qno = qno + 1; 
          if(qno > totalQuestions){ 
            window.location.href="TestFinish.php"; 
          } 
           else{ 
             window.location.href="TestStart.php?qno="+qno+"&qindex="+qindex; 
           } 

         } 
         else{ 
          alert(data + "Please resubmit the answer"); 
         } 
        }, 
        error : function(data, statusCode, xhr){ 
        alert(statusCode); 
         console.log(data); 
         console.log(xhr); 
        } 
       }); 
      }); 
     }); 
    </script> 
</body>   

GetQuestionForTest.php

<?php 
    $questionid = $_POST['quId']; 
    include('Config.php'); 

    $query = "select * from questionstable where questionid = '".$questionid."'"; 
    $result = mysql_query($query); 
    if(mysql_num_rows($result) > 0) 
    { 
     $someArray = []; 
     while($fetch = mysql_fetch_array($result)) 
     { 
      array_push($someArray,[ 
      'questiontext' => $fetch['questiontext'], 
      'OptionA' => $fetch['optionA'], 
      'OptionB' => $fetch['optionB'], 
      'OptionC' => $fetch['optionC'], 
      'OptionD' => $fetch['optionD'], 
      'NextButton' => '<button class="btn btn-success nxtbtn" disabled >Next</button>' 
      ]); 
     } 
     $someJSON = json_encode($someArray); 
     echo $someJSON; 
    } 
    else{ 
     echo mysql_error(); 
    } 
?> 

SaveTestAnswers.php

<?php 

    $qid = $_POST['qid']; 
    $ansId = $_POST['ansId']; 
    $stuId = $_POST['stuId']; 
    $testId = $_POST['testId']; 


    include('Config.php'); 
    $query = "insert into testattemptedanswers(StudentId,TestId,QuestionId,AnswerGiven) values('".$stuId."','".$testId."','".$qid."','".$ansId."')"; 
    $res = mysql_query($query); 
    if($res){ 
     echo 'true'; 
    } 
    else{ 
     echo 'false'.mysql_error(); 
    } 
?> 
+0

请告诉我们ü[R得到确切的错误。发布代码是不够的。 – Pushkar

+0

考虑使用mysqli或pdo – madalinivascu

+0

@Pushkar我已经简要地解释了一遍。这可能会帮助你。 –

回答

0

缺失报价 -

var qno = <?php echo $qno;?>; 
var qindex = <?php echo $qindex;?>; 

改变他们 -

var qno = '<?php echo $qno;?>'; 
var qindex = '<?php echo $qindex;?>'; 

在这里也 -

data : { 
    "qid" : arrQid[qindex], 
    "ansId" : $('input[name=options]:checked').val(), 
    "stuId" : '<?php echo $_SESSION['CurrentUser'];?>', 
    "testId" : '<?php echo $TestId;?>' 
}, 
+0

同样的错误在第二个Ajax调用 – madalinivascu

+0

@madalinivascu感谢您指出。 –

+0

@sgtBose,但值没有单引号发布到php脚本。 –