我使用jquery将客户端计算机上的本地时间发布到服务器。除了通过php显示本地时间外,我还会将其保存在服务器端的数据库中。要正确显示客户端的时间,我需要在收到jquery的帖子后刷新php页面。我怎样才能做到这一点?这是代码。我试图使用标题(“刷新:0”),但这不起作用。
<script type="text/javascript">
$(function(){
var d = new Date();
var dateStr = d.toString()
$.post(window.location, {
dateStr: dateStr
}).success(function(data){
var res = $(data).filter('#divMessage').text();
alert(res);
});
});
</script>
<div id="divMessage">
<?php
$v2 = 'nothing!';
if(isset($_POST["dateStr"]) && strlen(trim($_POST["dateStr"])) > 0)
{
$dstr = $_POST["dateStr"];
$v2 = 'current date/time is '.$dstr;
echo "<span style=\"color:green\">$v2</span>";
// I need to refresh the page here!
//header("Refresh:0");
}
echo "<span style=\"color:green\">$v2</span>";
?>
</div>
答案 0 :(得分:1)
你的计划:
为什么呢?如果要显示客户端的时间,为什么需要涉及服务器。
除了通过php显示本地时间外,我还会保存它 在服务器端的数据库中
我也很好奇你为什么要在数据库中保存客户的时间,但假设你有充分的理由,那就去做:
无需处理来自服务器的响应数据。客户已经拥有该信息。
我尝试使用标题(&#34;刷新:0&#34;),但这不起作用。
它在您尝试过的地方无法工作,因为您在将内容发送到浏览器之后设置了标题(空格,html和javascript在header()
调用之前)。如果您希望显示html的同一个php文件也响应AJAX查询,请将所有PHP逻辑放在顶部,在开始之前一无所有<{1}}
答案 1 :(得分:1)
标题必须在任何标记之前发送。
从PHP文档:
请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。
使用JavaScript:
location.reload();
答案 2 :(得分:-1)
使用
// I need to refresh the page here!
echo <script> location.reload(); </script>