【问题标题】:Php timer does not stop at 00:00PHP 计时器不会在 00:00 停止
【发布时间】:2018-03-06 13:36:36
【问题描述】:

我使用 js ajax 和 php 制作了一个倒数计时器。 问题是当计时器到达 00:00 时它不执行指定的操作。相反,计时器从 59:59 开始。 这是编写的代码:

    <span class="pull-right" id="time_left"></span>

    date_default_timezone_set('Asia/Karachi');
    echo $_SESSION['end_time'] = $quiz_end_time;

//timer function
        setInterval (function(){
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.open("GET","timer.php",false);
            xmlhttp.send(null);
            document.getElementById("time_left").innerHTML = xmlhttp.responseText;
        }, 1000);

//timer.php code
<?php session_start();
    $from_time = date('Y-m-d H:i:s');
    $to_time = $_SESSION['end_time'];

    $time_form = strtotime($from_time);
    $time_to = strtotime($to_time);

    $difference = $time_to - $time_form;

    echo "Time Left: ";echo $timer_time = date("i:s",$difference);echo "<br>"; 
    //echo date ('H:i:s',strtotime($timer_time));

    if($timer_time == "00:00"){
        ?>
        <script>
            document.getElementById("quiz_form").submit();
            //window.location="manage-quizzes.php?Msg=quiz_ended"
        </script>
        <?php
        session_destroy($_SESSION['quiz_id']);
        session_destroy($_SESSION['end_time']);
        header('Location:manage-quizzes.php?Msg=quiz_ended');
    }else{
        echo "OKAY";
    }
?>

【问题讨论】:

  • 我不确定您期望发生什么..... JavaScript 不能使用 innerHTML 执行。
  • 我想在定时器等于00:00时提交表单
  • 就我个人而言,我只会返回一个对象,该对象具有剩余时间或布尔值,可以从 Ajax 代码响应中提交和调用 subit。使用同步调用是一个可怕的想法,因为调用结束后用户将无法使用该页面。
  • 比较$difference &gt; 0 怎么样,而不是希望你能准确地到达 == 0 的时刻?

标签: javascript php mysql ajax


【解决方案1】:

我们无法在 AJAX 文件中提交表单。试试这个。

//timer function
setInterval (function(){
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET","timer.php",false);
    xmlhttp.send(null);
    if (xhttp.response != "SUBMIT")
        document.getElementById("time_left").innerHTML = xmlhttp.responseText;
    } else {
        document.getElementById("quiz_form").submit();
    }
}, 1000);

//timer.php code
if ($timer_time == "00:00") {
    echo "SUBMIT";
} else {
    echo "OKAY";
}

【讨论】:

    猜你喜欢
    • 2020-07-01
    • 2016-10-12
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    相关资源
    最近更新 更多