如何从数据库中推送数据并在每个数据后查看投票计数?

时间:2015-02-17 17:01:47

标签: javascript php html mysql

我想做的是让学生回答问题并在每个问题后查看每个投票,然后教师可以推送下一个问题。然后将投票输入数据库,我可以用它来生成图表。我目前让学生回答问题,但我在解决下一个问题时遇到问题,所以投票表决可以显示以及如何在下一个问题出现之前显示投票。 这可以从数据库中获取问题:

function getQuestion(){
var hr = new XMLHttpRequest();
    hr.onreadystatechange = function(){
    if (hr.readyState==4 && hr.status==200){
        var response = hr.responseText.split("|");
        if(response[0] == "finished"){
            document.getElementById('status').innerHTML = response[1];
        }
        var nums = hr.responseText.split(",");
        document.getElementById('question').innerHTML = nums[0];
        document.getElementById('answers').innerHTML = nums[1];
        document.getElementById('answers').innerHTML += nums[2];
    }
}
hr.open("GET", "questions.php?question=" + <?php echo $question; ?>, true);
  hr.send();
function post_answer(){
var p = new XMLHttpRequest();
        var id = document.getElementById('qid').value;
        var url = "userAnswers.php";
        var vars = "qid="+id+"&radio="+x();
        p.open("POST", url, true);
        p.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        p.onreadystatechange = function() {
    if(p.readyState == 4 && p.status == 200) {
        document.getElementById("status").innerHTML = '';
        alert("Your answer was submitted"+ p.responseText);
        var url = 'quiz.php?question=<?php echo $next; ?>';
        window.location = url;
}
}

p.send(vars);
document.getElementById("status").innerHTML = "processing...";

}

在另一个php文件中:

    require_once 'core/init.php';
$arrCount = "";
if(isset($_GET['question'])){
    $question = preg_replace('/[^0-9]/', "", $_GET['question']);
    $output = "";
    $answers = "";
    $q = "";
       $connection = mysqli_connect('localhost', 'root', '', 'alsp');
    $sql = mysqli_query($connection,"SELECT id FROM questions");
    $numQuestions = mysqli_num_rows($sql);
    if(!isset($_SESSION['answer_array']) || $_SESSION['answer_array'] < 1){
        $currQuestion = "1";
    }else{


$arrCount = count($_SESSION['answer_array']);
    }
    if($arrCount > $numQuestions){
        unset($_SESSION['answer_array']);
        header("location: start-quiz.php");
        exit();
    }
    if($arrCount >= $numQuestions){
        echo 'finished|<p>There are no more questions. Please enter your username and submit</p>
                <form action="userAnswers.php" method="post">
                <input type="hidden" name="complete" value="true">
                <input type="text" name="username">
                <button class="btn btn-action" type="submit" value="finish">Submit</button>
                </form>';
        exit();
    }
    $singleSQL = mysqli_query($connection,"SELECT * FROM questions WHERE id='$question' LIMIT 1");
        while($row = mysqli_fetch_array($singleSQL)){
            $id = $row['id'];
            $thisQuestion = $row['question'];
            $type = $row['type'];
            $question_id = $row['question_id'];
            $q = '<h2>'.$thisQuestion.'</h2>';
            $sql2 = mysqli_query($connection,"SELECT * FROM answers WHERE question_id='$question' ORDER BY rand()");
            while($row2 = mysqli_fetch_array($sql2)){
                $answer = $row2['answer'];
                $correct = $row2['correct'];
                $answers .= '<label style="cursor:pointer;"><input type="radio" name="rads" value="'.$correct.'">'.$answer.'</label> 
                <input type="hidden" id="qid" value="'.$id.'" name="qid"><br /><br />
                ';

            }
            $output = ''.$q.','.$answers.',<span id="btnSpan"><button onclick="post_answer()"class="btn btn-action">Submit</button></span>';
            echo $output;
           }
        }

我猜测而不是有一个提交按钮,将您带到下一页,点击一个单选按钮后,应该显示投票,然后教师可以推送下一个问题。这是主要问题。

0 个答案:

没有答案