簡體   English   中英

從PHP調用JS函數

[英]Calling a JS function from PHP

我正在創建一個站點,其中有多個通過AJAX對PHP的調用,現在AJAX使用POST從PHP獲取回顯的字符串,然后在開關中進行比較,然后執行所需的操作。 以下代碼中的示例

function submitPHP(dataForPHP){
    //Runs ajax request
    $.ajax({
        type : "POST",
        url : 'initPHP.php',
        dataType : 'text',
        data : dataForPHP,
        success : function(data){
            //Checks echoed data from PHP
            switch(data){
                case "LOGIN_ACCEPTED":
                    loggedInFunction();
                    break;
                case "LOGIN_FAILED":
                    loggedInFailedFunction();
                    break;
            }
        }
    });
}

我在考慮是否有一種方法可以讓PHP返回想要調用的函數(例如“ loggedInFunction();”),而不是要比較的字符串,然后再調用該函數? 如果可以,我可以將AJAX改為使用JSON。

我一直在堆棧上尋找其他類似的問題,其中大多數都希望回顯整個函數,而這並不是我想做的。

提前致謝!

我會做的。

  1. 使用HTTPS進行登錄,如今HTTP確實不安全;
  2. 用所有允許的方法( 動作 )創建一個控制器對象;
  3. 調用該控制器動作

擁有控制器的想法在幾個層面上都很方便:

  • 安全性:如果方法不在控制器中 ,則無法調用它,因此這是一種知道可以調用什么以及絕對不可能調用的方法;
  • 凝聚力:方法彼此相鄰且易於維護;
  • 封裝:如果存在任何狀態,則可以輕松地將其保存在該對象的上下文中。

這是一個例子:

loginController = {
  "acceptAction": function () {
  },
  "failAction": function () {
  }
};

您現在可以從AJAX處理程序調用這些方法。 說服務器告訴您必須執行的操作。 動詞可以說的動詞 ,例如acceptfail 然后,您可以執行以下操作:

"success": function (data) {
  loginController[data + "Action"]();
}

就是這樣。

順便說一句:這只是最基本的MVC模式。 老歌,但戈爾迪:)

暫無
暫無

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

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