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.ini实现Mysql导入数据库文件最大限制的修改方法
Dec 11 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
Nov 04 PHP
初识laravel5
Mar 02 PHP
Linux系统下php获得系统分区信息的方法
Mar 30 PHP
php多重接口的实现方法
Jun 20 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
php递归函数怎么用才有效
Feb 24 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
PHP Laravel中的Trait使用方法
Jan 20 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
Apr 02 PHP
yii框架使用分页的方法分析
Jul 25 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
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
js断点调试心得分享(必看篇)
2017/12/08 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
基于tensorflow加载部分层的方法
2018/07/26 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
python openssl模块安装及用法
2020/12/06 Python
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
三个儿子教学反思
2014/02/03 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技