簡體   English   中英

在瀏覽器上重新加載/添加新標簽時提交表單

[英]Submit the form when on browser reload/add new tab

剛剛從worldofwebcraft.com上獲得了一些用於我的項目檢查系統的代碼。我只了解PHP,實際上我對JavaScript沒有任何想法,因為我們的老師還沒有教我們。 當用戶重新加載頁面或打開新標簽頁時,請幫助我自動提交表單。

這是代碼:

<?php if(isset($_GET['question'])){
    $question = preg_replace('/[^0-9]/', "", $_GET['question']);
    $next = $question + 1;
    $prev = $question - 1; ?>

<script type="text/javascript">
function countDown(secs,elem) {
    var element = document.getElementById(elem);
    element.innerHTML = "You have "+secs+" seconds remaining.";
    if(secs < 1) {
        var xhr = new XMLHttpRequest();
        var url = "userAnswers.php";
            var vars = "radio=0"+"&qid="+<?php echo $question; ?>;
            xhr.open("POST", url, true);
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.onreadystatechange = function() {
        if(xhr.readyState == 4 && xhr.status == 200) {
            alert("You did not answer the question in the allotted time. It will be marked as incorrect.");
            clearTimeout(timer);
    }
}
xhr.send(vars);
        document.getElementById('counter_status').innerHTML = "";
        document.getElementById('btnSpan').innerHTML = '<h2>Times Up!</h2>';
        document.getElementById('btnSpan').innerHTML += '<a href="exam.php?question=<?php echo $next; ?>">Click here now</a>';

    }
    secs--;
    var timer = setTimeout('countDown('+secs+',"'+elem+'")',1000);
}
</script>
<script>
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 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 = '';
            alert("Your answer was submitted.");
            var url = 'exam.php?question=<?php echo $next; ?>';
            window.location = url;
    }
}
p.send(vars);
document.getElementById("status").innerHTML = "processing...";

}
</script>
<script>
window.oncontextmenu = function(){
    return false;
}
    document.onkeydown = function() {
        if(event.keyCode == 116) {
                event.returnValue = false;
                event.keyCode = 0;
                return false;
               }
    }


</script>

我會做類似的事情:

window.onbeforeunload = function() {
    post_answer(); 
}

如果post_answer() 您的“提交表單”處理程序。 無法從代碼中准確分辨出來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM