如何在收到来自jquery的帖子后引用一个php页面

时间:2016-07-26 00:08:38

标签: javascript php jquery

我使用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>

3 个答案:

答案 0 :(得分:1)

你的计划:

  1. Javascript读取客户的时间
  2. 使用AJAX将客户端的时间发送到服务器
  3. 从包含客户端时间的服务器接收响应
  4. 在页面上显示该回复
  5. 为什么呢?如果要显示客户端的时间,为什么需要涉及服务器。

      

    除了通过php显示本地时间外,我还会保存它   在服务器端的数据库中

    我也很好奇你为什么要在数据库中保存客户的时间,但假设你有充分的理由,那就去做:

    1. Javascript读取客户的时间
    2. Javascript在页面上显示客户的时间
    3. 使用AJAX向服务器发送时间。
    4. 服务器将其保存在DB
    5. 无需处理来自服务器的响应数据。客户已经拥有该信息。

        

      我尝试使用标题(&#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>