簡體   English   中英

從PHP腳本調用AJAX

[英]Call AJAX from a PHP script

我知道我可以在處理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將選項卡附加到文檔中然后在成功回調的菜單類中調用insert方法?

我問的唯一原因是,我覺得與其他處理方式相比,這種方式看起來更整潔,盡管我可能完全錯了。

任何反饋將不勝感激-亞歷克斯歡呼。

回顯以下行可以調用現有的javascript函數,您甚至可以插入變量(盡管只能是字符串和整數)。

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

我發現這是快速完成此操作的最簡單方法之一。

哦,我現在知道您想做什么,您需要的是websockets。 當執行一段php代碼(服務器端)時,您希望瀏覽器(客戶端)中發生一些事情。 看看如何使用javascript和websocket,長時間輪詢和其他類似方法進行實時聊天,這就是您所需要的。

這對我有很大幫助什么是長輪詢,Websocket,服務器發送事件(SSE)和Comet?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM