• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

转载请注明出处: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; } } ?>

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
thinkphp5或3.2php动态修改config配置文件永久保存发布时间:2022-07-10
下一篇:
在PHP中使用随机数的三个步骤发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap