使用PHP JS在特定时间从服务器自动启用“提交”按钮

时间:2014-06-27 21:57:04

标签: javascript php ajax

我正在寻找的是这个。 我有一个简单的PHP页面,其中包含默认禁用的提交按钮。 我希望在特定时间启用提交按钮,例如02:00:00

使用PHP,我可以从使用date("h:i:s")的服务器获取时间,我在JS变量中使用它。  喜欢     var time = "<? php echo date("h:i:s") ; ?>" ;

现在通过使用 setInterval()方法每毫秒我试图比较“时间”变量的值与 特别是我希望按钮启用。 比如if(time=="02:00:00") { button.disabled=false; }

但问题是“时间”变量也应动态改变以满足条件,否则什么都不会发生。我无法得到任何简单的解决方案。我需要AJAX吗?

任何帮助将不胜感激:) 感谢名单!

3 个答案:

答案 0 :(得分:1)

我会使用JavaScript更新time变量:

var curTime = new Date();
var firstColon = curTime.toString().indexOf(":");
time = curTime.toString().substring(firstColon-2, firstColon+6)

我是一个Python人员,但我认为PHP服务器的工作方式类似,当转到链接时,发送GET请求,然后发回数据,可能是动态创建的带有Python代码的网页,但该网页不能包含任何Python或PHP。这些语言严格来说是服务器端的。您可以向服务器发送请求以获取时间,但这样做效率会非常低,最好是做这个客户端,然后不断地动态更改网页请求到您的PHP服务器。

由于这是关于禁用按钮,如果按钮向服务器发送请求,请记住检查时间是否正确服务器端,以防有人使用他们的JavaScript控制台客户端篡改网页。

答案 1 :(得分:0)

服务器端的启用/禁用是否更好?为什么需要在JavaScript中启用提交按钮?仅仅通知用户他们目前无法提交操作的解决方案是否太糟糕了?他们可以随时刷新页面或稍后返回以查看是否已启用。

或者,您可以简单地使用ajax请求定期ping服务器以查看是否可以启用该按钮。但要知道,精明的用户可以使用现代浏览器中提供的Web Inspector工具来更改DOM状态。始终在服务器端验证您的操作。希望这会有所帮助。

答案 2 :(得分:0)

尝试以下

/* ########## HTML file ######### */
<html>
<head>
</head>
<body onload="timer_function();">
<button type="submit" id="validateIt" style="none">Submit</button>
</body>
<script type="text/javascript">
function AjaxFunction() 
{
var httpxml;
try
  {
  // Firefox, Opera 8.0+, Safari
  httpxml=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
          try
                    {
                 httpxml=new ActiveXObject("Msxml2.XMLHTTP");
                    }
            catch (e)
                    {
                try
            {
            httpxml=new ActiveXObject("Microsoft.XMLHTTP");
             }
                catch (e)
            {
            alert("Your browser does not support AJAX!");
            return false;
            }
            }
  }
function stateck() 
    {
    if(httpxml.readyState==4)
      {
//document.getElementById("msg").innerHTML=httpxml.responseText;
//document.getElementById("msg").style.background='#f1f1f1';
      }
     if(httpxml.responseText == "02:00:00")
      {
        document.getElementById('validateIt').style.display = 'block';
      }
     if(httpxml.responseText >= "00:00:00" && httpxml.responseText < "02:00:00"
      || httpxml.responseText >= "02:05:00" && httpxml.responseText < "02:00:00")
      {
        document.getElementById('validateIt').style.display = 'none';
      }

    }
    var url="server-clock-ckk.php";
url=url+"?sid="+Math.random();
httpxml.onreadystatechange=stateck;
httpxml.open("GET",url,true);
httpxml.send(null);
tt=timer_function();
  } 
function timer_function(){
var refresh=1000; // Refresh rate in milli seconds
mytime=setTimeout('AjaxFunction();',refresh)
}  // Display server time ends
</script>
</html>
/* ########## PHP file server-clock-ckk.php ######### */ 
<?Php
echo date("H:i:s", time());
?>