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


Posted in PHP onJuly 15, 2015

总共分成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 相关文章推荐
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
Feb 09 PHP
通达OA公共代码 php常用检测函数
Dec 14 PHP
基于session_unset与session_destroy的区别详解
Jun 03 PHP
分享一个超好用的php header下载函数
Jan 31 PHP
php分页函数完整实例代码
Sep 22 PHP
为百度UE编辑器上传图片添加水印功能
Apr 16 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
Sep 22 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
php源码的安装方法和实例
Sep 26 PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 PHP
如何通过PHP实现Des加密算法代码实例
May 09 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 #PHP
php实现网页缓存的工具类分享
Jul 14 #PHP
浅谈php错误提示及查错方法
Jul 14 #PHP
浅谈php的优缺点
Jul 14 #PHP
使用URL传输SESSION信息
Jul 14 #PHP
利用“多说”制作留言板、评论系统
Jul 14 #PHP
php生成数字字母的验证码图片
Jul 14 #PHP
You might like
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
Python中的类学习笔记
2014/09/23 Python
python 实时遍历日志文件
2016/04/12 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
详解Python的三种拷贝方式
2020/02/11 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
个人简历中自我评价
2014/02/11 职场文书
实习护士自荐信
2014/06/21 职场文书
会计求职自荐信范文
2015/03/04 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android