0

PHPを使用してクイズを作成しましたが、現在、回答がすべて一度に表示されます。jqueryを使用して一度に2つ表示し、ユーザーの回答をデータベースに挿入する送信ボタンを設定できるかどうか疑問に思いました。

現在、私のコードは次のようになっています。

<?php
//retreive questions from database and put into question box

$query2 = "SELECT `QuestionId`, `Question`, `Opt1`, `Opt2`, `Opt3`, `Opt4`,`Answer` FROM `pf_questions`";

$question2 = mysql_query($query2);

while($row = mysql_fetch_array($question2)){

    $id         = $row['QuestionId'];
    $question   = $row['Question'];
    $opt1       = $row['Opt1'];
    $opt2       = $row['Opt2'];
    $opt3       = $row['Opt3'];
    $opt4       = $row['Opt4'];
    $answer     = $row["Answer"];

?>
<div id="ContainerQuestion">
    <span class="Question">Question <?php echo $id; ?>. <?php echo $question; ?></span>

        <p><input type=radio name='q<?php echo $id; ?>' value="a" <?php if($opt1=='a') echo "checked='checked'"' ?>> <?php echo $opt1; ?> </p>
        <p><input type=radio name='q<?php echo $id; ?>' value="b" <?php if($opt1=='b') echo "checked='checked'"' ?>> <?php echo $opt2; ?> </p>
        <p><input type=radio name='q<?php echo $id; ?>' value="c" <?php if($opt1=='c') echo "checked='checked'"' ?>> <?php echo $opt3; ?> </p>
        <p><input type=radio name='q<?php echo $id; ?>' value="d" <?php if($opt1=='d') echo "checked='checked'"' ?>> <?php echo $opt4; ?> </p>


</div>
<?php
}

?>
4

2 に答える 2

1

私は、あなたを正しい道に導くために必要な JavaScript の単純な構造を含む簡単なページを作成しました。貼り付けをメモ帳ファイルにコピーして html 実行として保存し、[送信] をクリックするだけです。

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
    <style>
        .Question{
            display:none;
        }
    </style>
</head>
<body>
    <div id="container">
        <p id="1" class="Question">Question 1</p>
        <p id="2" class="Question">Question 2</p>
        <p id="3" class="Question">Question 3</p>
        <p id="4" class="Question">Question 4</p>
        <button id="submit">Submit</button>
    </div>
</body>
<script>
    var AmountToRevealPerItteration = 2;
    var currentIndex=0;
    var questions;
    $(document).ready( function (){
        questions = $("#container").find('.Question').toArray();
        $('#submit').click(function(e){
        for(var counter = 1;counter <= AmountToRevealPerItteration;counter++){
            revealQuestion();
        }
        });
    });

    function revealQuestion(){
        if(currentIndex == questions.length){
            return;
        }
        $(questions[currentIndex]).attr('style','display:block');
        currentIndex++;
    }
</script>

于 2012-11-16T11:52:12.193 に答える
0

Ajax を使用する必要があります。最初に、基準に応じて 2 つの質問を取得します。そして、ボタンをクリックして次の質問を取得します(もちろん、前の質問の回答として1つのオプションをチェックした後)。次のどのレコードを取得する必要があるかをphpスクリプトに伝えるために、何らかの番号を渡す必要があります。jQuery ajaxを使用できます。

于 2012-11-16T11:51:07.230 に答える