-4

可能重复:
创建对 PHP 函数的 jQuery AJAX 请求

我正在尝试运行一个非常简单的公式,

调用一个网页,每隔几秒左右,Ajax 就会调用一个 php 函数来回显“Hello World”

<?php
function test(){
     echo "Hello World";
}
?>
<script type="text/javascript">

function testingTimer()
{
    //CALL PHP FUNCTION CALLED TEST
}

setInterval('testingTimer()',5000);
</script>

我所需要的只是调用已经声明的 php 函数的代码。

4

6 回答 6

2

你不能直接调用它。编写AJAX代码并调用URL ,如果操作GET变量等于测试,则myfile.php?action=test在文件中写入,然后调用该函数,不要忘记退出代码以防止任何其他输出。myfile.php

于 2012-10-10T07:51:07.543 回答
0

根据您的示例代码,我假设您正在尝试在一个文件中完成所有这些操作。您遇到的问题是 PHP 在页面加载之前/加载时在服务器端运行。一旦加载,它就不能在不刷新的情况下重新执行。

您需要将 PHP 放在一个单独的文件中,以便 AJAX 通过 HTTP 调用它并返回响应。

所以像这样(如果使用 jQuery):

$.ajax('helloworld.php', function(data){
    alert(data);
}, 'html');

如果正确实施,应该弹出 hello world。

于 2012-10-10T07:54:32.573 回答
0

AJAX 无法自行调用任意 php 函数。AJAX 允许您连接到给定页面并请求数据。话虽如此,您可以使用 AJAX 加载给定页面,该页面所做的只是调用您的测试函数:

于 2012-10-10T07:50:23.770 回答
0

谷歌如何进行 ajax 调用。这是在太多教程中解释的基本知识,并且取决于您是否使用框架以及使用哪个框架。

于 2012-10-10T07:50:42.653 回答
0

例如,您可以发布一些内容:

function testingTimer()
{
     $.post(URL,
            {
            foo : 'foo'
            }
     );
}

并在 php 检查帖子中:

if (isset($_POST['foo']))
    test();
于 2012-10-10T07:51:56.610 回答
0

您应该使用jQuery来使用ajax 函数

您不应使用 setInterval,而应在服务器响应后使用 setTimeout ,因为如果服务器响应时间超过 5000 秒,那么您将同时收到两个请求。如果你想设置一个超时,你总是可以在 jqXHR 对象上看到 abort 函数。

例如,您可以这样做:

function refresh() {
    $.ajax({
        type: 'GET',    // can be POST or GET
        url: 'page.php' // php script to call
    // when the server responds
    }).done(function(response) {
        console.log(response);
        // call your function automatically
        setTimeout(refresh, 5000);
    });
}
于 2012-10-10T07:52:24.987 回答