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 相关文章推荐
深入PHP操作MongoDB的技术总结
Jun 02 PHP
解析PHP自带的进位制之间的转换函数
Jun 08 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
php断点续传之如何分割合并文件
Mar 22 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
Jun 19 PHP
PHP+jQuery+Ajax实现用户登录与退出
Apr 27 PHP
PHP如何将log信息写入服务器中的log文件
Jul 29 PHP
php自定义函数实现汉字转换utf8编码的方法
Sep 29 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
Laravel框架FormRequest中重写错误处理的方法
Feb 18 PHP
PHP中number_format()函数的用法讲解
Apr 08 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 PDOStatement::rowCount讲解
2019/02/01 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
js 利用image对象实现图片的预加载提高访问速度
2013/03/29 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
jQuery oLoader实现的加载图片和页面效果
2015/03/14 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
wxPython事件驱动实例详解
2014/09/28 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
国家助学金获奖感言
2014/01/31 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
个人存款证明书
2014/10/18 职场文书
逃课检讨书范文
2015/05/06 职场文书
现货白银电话营销话术
2015/05/29 职场文书
总结几个非常实用的Python库
2021/06/26 Python