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&amp;&amp;mysql)六
Oct 09 PHP
php中通过Ajax如何实现异步文件上传的代码实例
May 07 PHP
PHP中获取变量的变量名的一段代码的bug分析
Jul 07 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
简单实用的.net DataTable导出Execl
Oct 28 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
php实现在服务器端调整图片大小的方法
Jun 16 PHP
PHP内核探索之解释器的执行过程
Dec 22 PHP
PHP设置头信息及取得返回头信息的方法
Jan 25 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
Apr 02 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 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连接Oracle数据库
2006/10/09 PHP
PHP中文汉字验证码
2007/04/08 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
php微信公众平台交互与接口详解
2016/11/28 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
jquery和javascript的区别(常用方法比较)
2013/07/04 Javascript
js实现最短的XML格式化工具实例
2015/03/12 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
Atom的python插件和常用插件说明
2018/07/08 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
python实现单链表的方法示例
2019/09/03 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
境外导游求职信
2014/02/27 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
golang的文件创建及读写操作
2022/04/14 Golang
MySQL GTID复制的具体使用
2022/05/20 MySQL