0

指定された回答が正しいかどうかの検証と表示に問題があります。コードは結果をチェックし、答えが正しい場合は非表示の緑の div を表示し、答えが間違っている場合は赤い div を表示する必要があります。

ここに私のajaxコードがあります:

function x() {
    var rads = document.getElementsByName("rads");
    for ( var i = 0; i < rads.length; i++ ) {
        if ( rads[i].checked ){
            var val = rads[i].value;
            return val;
        }
    }
}

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 = '';
        var url = 'quiz.php?question=<?php echo $next; ?>';
        window.location = url;
        }
    }

    p.send(vars);
    document.getElementById("status")
}

phpコード:

session_start();

if(isset($_POST['radio']) && $_POST['radio'] != ""){
    $answer = preg_replace('/[^0-9]/', "", $_POST['radio']);
    if(!isset($_SESSION['answer_array']) || count($_SESSION['answer_array']) < 1){
        $_SESSION['answer_array'] = array($answer);
    }else{
        array_push($_SESSION['answer_array'], $answer);
    }
}

if(isset($_POST['qid']) && $_POST['qid'] != ""){
    $qid = preg_replace('/[^0-9]/', "", $_POST['qid']);
    if(!isset($_SESSION['qid_array']) || count($_SESSION['qid_array']) < 1){
            $_SESSION['qid_array'] = array($qid);
    }else{
        array_push($_SESSION['qid_array'], $qid);
    }

    $_SESSION['lastQuestion'] = $qid;
}

問題は、答えが正しいかどうかを表示できないことです。

.$answer が表示されるはずです。は正しくありません。お願いします、事前に感謝します

4

1 に答える 1

0

PHPが苦手ですみません!しかし、私はあなたに何をすべきかを伝えることができます。次のような特定の ID またはクラス名を使用して、ラジオ ボタンの div を作成できます<div id="ajax-result"><input type="radio" /></div>

ajax からの投稿の結果が radio_checked の場合、代わりにラジオがチェックされますが、同じままです!

于 2013-08-12T23:41:07.253 に答える