zoukankan      html  css  js  c++  java
  • ajax + php + Controller 控制所有后台函数调用

    转载请注明出处:http://www.cnblogs.com/ghypnus/p/4645873.html 

    好久没有来这边发布代码了

    总共分成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; } } ?>
  • 相关阅读:
    算法竞赛入门经典习题2-3 韩信点兵
    ios入门之c语言篇——基本函数——5——素数判断
    ios入门之c语言篇——基本函数——4——数值交换函数
    144. Binary Tree Preorder Traversal
    143. Reorder List
    142. Linked List Cycle II
    139. Word Break
    138. Copy List with Random Pointer
    137. Single Number II
    135. Candy
  • 原文地址:https://www.cnblogs.com/ghypnus/p/4645873.html
Copyright © 2011-2022 走看看