Javascript 当倒计时计时器=0时,按“警报”按钮或提交表单

Javascript 当倒计时计时器=0时,按“警报”按钮或提交表单,javascript,php,Javascript,Php,当我的计时器计数为00:00:00 alert('Get Result')按钮或提交表单 我甚至不能在response.php中提醒消息 这是我从数据库中选择持续时间的地方 while($row=mysqli_fetch_array($res)) { $duration=$row["duration"]; } $_SESSION["duration"]=$duration; $_SESSION["start_time"]=date("Y-m-d H:i:s"); $end_time=

当我的计时器计数为
00:00:00
alert('Get Result')
按钮或提交表单

我甚至不能在response.php中提醒消息

这是我从数据库中选择持续时间的地方

while($row=mysqli_fetch_array($res))
{
    $duration=$row["duration"];
}

$_SESSION["duration"]=$duration;
$_SESSION["start_time"]=date("Y-m-d H:i:s");

$end_time=$end_time=date('Y-m-d H:i:s', strtotime('+'.$_SESSION["duration"].'minutes',strtotime($_SESSION["start_time"])));

$_SESSION["end_time"]=$end_time;
这是response.php

<?php
session_start();

$from_time1=date('Y-m-d H:i:s');
$to_time1=$_SESSION["end_time"];
$timefirst=strtotime($from_time1);
$timesecond=strtotime($to_time1);

$differenceinseconds=$timesecond-$timefirst;
if($differenceinseconds<0){
    // This is for when timer smaller then 0 then = 00:00:00
    $differenceinseconds=0;
    echo "TIME UP<br>";
//I try to alert a simple message here, and dint work. Why is this happen
}
echo gmdate("H:i:s",$differenceinseconds);

?>

下面是测验页面中的javascript

<script type="text/javascript">
    var x =setInterval(test,1000);

    function test()
    {
        var xmlhttp=new XMLHttpRequest();
        xmlhttp.open("GET","response.php",false);
        xmlhttp.send(null);
        document.getElementById("response").innerHTML=xmlhttp.responseText;
    }
</script>

var x=设定间隔(测试,1000);
功能测试()
{
var xmlhttp=new XMLHttpRequest();
open(“GET”,“response.php”,false);
xmlhttp.send(空);
document.getElementById(“response”).innerHTML=xmlhttp.responseText;
}
显示计时器标签

<div id=response class=timer style=font-size:30px></div>

表单名称和按钮

<form name=myfm method=post action=quizz.php>
    <input type=submit name=submit value='Get Result'>

您的PHP应该只获得时间差。这意味着PHP将始终输出
HH:mm:ss
格式,而不输出其他文本或值,这些文本或值将在JavaScript中获得。确保输出总是相同的,除非您使用的是编码数组,这意味着您可以将代码设计为期望始终发送的值

$differenceinconds=$timesecond-$timefirst;
如果($differenceSeconds<0){
$differenceinseconds=0;
}
echo gmdate(“H:i:s”,差分秒);
在获取JavaScript中的值后,您可以检查该值,因为您现在知道,
response.php
打印的唯一内容是
HH:mm:sss
格式的时间

function test() {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "response.php", false);
    xmlhttp.send(null);
    var response = xmlhttp.responseText;

    document.getElementById("response").innerHTML = response;
    if (response == "00:00:00") {
        alert("Time's up!");
    }
}
如果还要提交表单,请在条件
If(response==“00:00:00”){
中添加一个
submit()

document.getElementsByName('myfm')[0].submit();

它可以提醒时间到了,但是如果(response==“00:00:00”){document.getElementsByName('myfm')[0].submit();}当时间到了,它就卡在那里了,我们有办法在警报消息中发出警报并获取结果按钮吗?如果警报按应有的方式显示,那么使用
document.getElementsByName('myfm')[0]提交表单时就会出现问题。提交();
您需要调试它以找出它没有触发的原因。从外观上看,您可能缺少一个结束表单标记,您应该引用属性的所有值,即
method=“POST”
而不是
method=POST
Ya,我在第一条注释之前就尝试过了,因为我的表单是PHP
echo“”
我确实尝试了返回并使用ID方法,但仍然不起作用。我通过单击按钮解决了这个问题。getElementById(“getrr”)。单击();