我正在寻找的是这个。 我有一个简单的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吗?
任何帮助将不胜感激:) 感谢名单!
答案 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());
?>