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+MSSQL分页的例子
Oct 09 PHP
PHP 中的批处理的实现
Jun 14 PHP
php adodb介绍
Mar 19 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
PHP查询大量数据内存耗尽问题的解决方法
Oct 28 PHP
详谈php中 strtr 和 str_replace 的效率问题
May 14 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
TP5框架请求响应参数实例分析
Oct 17 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
层叠菜单的动态生成
2006/10/09 PHP
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
PHP实现的文件上传类与用法详解
2017/07/05 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
js绘制购物车抛物线动画
2020/11/18 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
Bootstrap Table从零开始
2017/06/30 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
Python连接DB2数据库
2016/08/27 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
辞职信范文大全
2015/03/02 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
自主招生英文自荐信
2015/03/25 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书