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 相关文章推荐
BBS(php &amp; mysql)完整版(七)
Oct 09 PHP
FCKeditor的安装(PHP)
Jan 13 PHP
php &amp;&amp; 逻辑与运算符使用说明
Mar 04 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
解析php取整的几种方式
Jun 25 PHP
PHP中变量引用与变量销毁机制分析
Nov 15 PHP
php实现的mongodb操作类
May 28 PHP
详谈PHP面向对象中常用的关键字和魔术方法
Feb 04 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
Yii框架引入coreseek分页功能示例
Feb 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中一个有意思的日期逻辑处理
2012/03/25 PHP
php简单smarty入门程序实例
2015/06/11 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
js实现搜索栏效果
2018/11/16 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
python通过文件头判断文件类型
2015/10/30 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
python web框架中实现原生分页
2019/09/08 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
2020/05/11 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
python实现KNN近邻算法
2020/12/30 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
亚洲最大旅游体验平台:KKday
2017/10/21 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
公司端午节活动方案
2014/02/04 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书