ajax+php控制所有后台函数调用

5年以前  |  阅读数:1092 次  |  编程语言:PHP 

总共分成3大部分来完成php的ajax调用逻辑,以下是大致的结构

第一部分:ajax请求:主要是action这个参数,LoginController是php的类名,login是LoginController这个类中的函数名


    $('#submit').on('click', function (e) {
        e.stopPropagation();
        $.ajax({
          url: "../../controllers/Controller.php",
          data: {
            action: "LoginController/login",
            username: username,
            password: password
          },
          dataType: "text",
          type: 'POST',
          timeout: 10000,
          error: function () {
            alert("服务器超时");
          },
          success: function (data) {
              alert(data);
          }
        });
      });

第二部分:Controller.php,这个文件是调用其他具体的功能类的控制器,起到枢纽作用,主要是通过反射来实现


    <?php

    if (!empty($_REQUEST['action'])) {
      try {
        $action = explode('/', $_REQUEST['action']);
        $class_name = $action[0];
        $method_name = $action[1];
        require $class_name . '.php';
        $class = new ReflectionClass($class_name);
        if (class_exists($class_name)) {
          if ($class->hasMethod($method_name)) {
            $func = $class->getmethod($method_name);
            $instance = $class->newInstance();
            $func->invokeArgs($instance, array($_REQUEST));
            $result = $instance->getResult();
            echo $result;
          }
        }
      } catch (Exception $exc) {
        echo $exc->getTraceAsString();
      }
    }
    ?>

第三部分:LoginController.php,这个文件是具体的功能类


    <?php
    class LoginController {
      
      private $result;
      function LoginController() {
        //初始化数据库连接等参数
      }
      function login($args) {
        //具体的登录逻辑
      }
      function getResult() {
        return $this->result;
      }
    }
    ?>

意思所述就是本文的全部内容了,希望大家能够喜欢。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例