从PHP脚本调用AJAX

时间:2014-06-11 14:34:10

标签: php ajax

我知道我可以在处理完AJAX请求后调用PHP脚本,但是我可以反过来这样做吗?

我正在为新网站编写一个动态大小的导航组件,我希望每次将新项目添加到菜单时刷新导航。

在我的菜单课程中,我正在考虑使用这种方法来实现效果:

public static function new_item($label, $link) {

    $pos = self::num_items();        

    $DB = Database::getInstance();

    $query = $DB->connection->prepare("INSERT INTO menu VALUES('', :label, :link, :pos )");
    $query->execute(array(':label'=>$label,
                          ':link' =>$link,
                          ':pos'  =>$pos+=1  
                   ));

    ?>

    <script>

        function refreshHeader() {
            $.ajax({
                type: "GET",
                url:  "my url",
                success: function() {
                    // refresh the header here somehow
                }
            });
        }

    </script>

    <?php
}

但是,每次运行时我在控制台中都看不到任何内容(即使我将有效的url放入我的函数中),我是否能够以这种方式实现我想要的内容,或者我会更好地处理将标签附加到通过AJAX文档,然后在成功回调的Menu类中调用insert方法?

我问的唯一原因是我觉得这种方式与其他方式相比可能看起来更整洁,尽管我可能完全错了。

任何反馈都会非常感激 - 欢呼 亚历克斯。

2 个答案:

答案 0 :(得分:2)

回显以下行可以调出现有的javascript函数,你甚至可以插入变量(只有字符串和整数)。

echo "<style onload='jsfunction(\"$vars\")'></style>";

我发现这是最简单的方法之一。

答案 1 :(得分:0)

哦,我现在明白你想做什么,你需要的是websockets。当执行一段PHP代码(服务器端)时,您希望在浏览器(客户端)中发生某些事情。看看如何使用javascript和websockets进行实时聊天,长轮询和其他类似的方法,这些都是你需要的。

这对我有很大的帮助What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?