从PHP调用JS函数

时间:2017-06-11 10:27:13

标签: javascript php jquery json ajax

我正在建立一个通过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 个答案:

答案 0 :(得分:0)

我这样做。

  1. 使用HTTPS执行登录,现在HTTP确实不安全;
  2. 使用所有允许的方法创建控制器对象(操作);
  3. 调用该控制器的操作
  4. 拥有控制器的想法在几个层面上很方便:

    • 安全性:如果某个方法不在控制器中,则无法调用它,因此这是一种了解可以调用的内容以及绝对无法调用的方法;
    • 凝聚力:这些方法彼此相邻,更易于维护;
    • 封装:如果有任何状态,它可以很容易地保存在该对象的上下文中。

    这是一个例子:

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

    现在可以从AJAX处理程序中调用这些方法。假设服务器告诉您必须做什么。一个动词可以这么说,例如acceptfail。然后你可以这样做:

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

    就是这样。

    BTW:这只是非常基本的MVC模式。 Oldie但是goldie:)