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 相关文章推荐
解决file_get_contents无法请求https连接的方法
Dec 17 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
php警告Creating default object from empty value 问题的解决方法
Apr 02 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
php自动获取关键字的方法
Jan 06 PHP
PHP性能分析工具XHProf安装使用教程
May 13 PHP
PHP正则表达式过滤html标签属性(DEMO)
May 04 PHP
thinkPHP基于ajax实现的菜单与分页示例
Jul 12 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
laravel中的一些简单实用功能
Nov 03 PHP
PHP的mysqli_select_db()函数讲解
Jan 23 PHP
统计PHP目录中的文件数方法
Mar 05 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
Jquery刷新页面背景图片随机变换的实现方法
2013/03/15 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
不可错过的十本Python好书
2017/07/06 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
数百万免费的图形资源:Freepik
2020/09/21 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
实习自我评价怎么写
2013/12/02 职场文书
合同专员岗位职责
2013/12/18 职场文书
大一学生的职业生涯规划书范文
2014/01/19 职场文书
简历里的自我评价
2014/01/31 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
学雷锋活动简报
2015/07/20 职场文书
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python