使用JavaScript刷新PHP函数

Refresh PHP functions with JavaScript

本文关键字:函数 PHP 刷新 JavaScript 使用      更新时间:2023-09-26

我需要一个刷新函数的脚本:

$ping, $ms

每30秒显示一个定时器,我基本上得到了这个脚本:

window.onload=function(){
var timer = {
        interval: null,
        seconds: 30,
        start: function () {
            var self = this,
            el = document.getElementById('time-to-update');
            el.innerText = this.seconds;
            this.interval = setInterval(function () {
                self.seconds--;
                if (self.seconds == 0) 
                    window.location.reload();
                el.innerText = self.seconds;
            }, 1000);
        },
        stop: function () {
            window.clearInterval(this.interval)
        }
}
timer.start();
} 

但它刷新了整个页面,而不是我希望它刷新的功能,所以,任何帮助都会得到通知,谢谢!

编辑:我忘了提到脚本必须一致地循环

这里重新加载整个页面:

window.location.reload();

现在,您似乎想要做的是重新加载页面的部分,这些部分是由php函数生成的。不幸的是php是服务器端的,这意味着您无法让客户端浏览器运行php。您的服务器运行php来生成浏览器能够理解的内容。在web浏览器中,打开您使用php创建的页面,然后选择查看源代码,您就会明白我的意思。

以下是您需要做的:

  1. 使您的两个功能ping和ms可通过ajax访问
  2. 调用jQuery.ajax而不是window.location.reload()。在成功时写到您的页面

以下是我认为最理想的处理方式。。。我还没有看到你的问题的php方面,但无论如何:

  1. 制作一个名为ping.php的文件,并将所有的ping函数代码放在其中。ms同上
  2. 在调用这些函数的原始php文件中,在需要函数调用的每个点上创建一个div。给他们适当的id。例如:"ping_contents"answers"ms_contents"

    如果需要,可以用一些初始数据填充这些数据。

  3. 在你的js中放入这样的东西:

    jQuery.ajax(
    {
        url     : url_of_ping_function,
        data    : {anything you need},
        type    : 'POST', //or 'GET'
        dataType: 'html',
        success : function(data)
        {
             document.getElementById("ping_contents").innerHTML = data;
        }    
    });
    

为另一个函数执行另一个操作

您想要的是AJAX、异步JavaScript和XML

您可以使用jQuery。

我可以在这里举一个例子,但在互联网上可以找到很多信息。过去,我编写了自己的AJAX代码,但自从我开始使用jQuery以来,一切都变得容易多了。看看我提供的jQuery链接。这里有一些有用的信息。这个示例代码可能是最容易解释的。

$.ajax({
  url: "test.php"
}).done(function() {
  alert("done");
});

有一段时间,例如单击按钮,文件test.php就会被执行。完成后,将显示一个文本为"done"的警告框。这是最基本的。