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 相关文章推荐
杏林同学录(八)
Oct 09 PHP
php Smarty 字符比较代码
Feb 27 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
PHP+FastCGI+Nginx配置PHP运行环境
Aug 07 PHP
ThinkPHP路由详解
Jul 27 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
PHP简单判断字符串是否包含另一个字符串的方法
Mar 25 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
Sep 01 PHP
Yii框架实现邮箱激活的方法【数字签名】
Oct 18 PHP
thinkPHP框架整合tcpdf插件操作示例
Aug 07 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 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 和 MySQL 基础教程(四)
2006/10/09 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
javascript new一个对象的实质
2010/01/07 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
Javascript实现找不同色块的游戏
2017/07/17 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
python实现文件名批量替换和内容替换
2014/03/20 Python
python对html代码进行escape编码的方法
2015/05/04 Python
python 文件操作api(文件操作函数)
2016/08/28 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
详解Python import方法引入模块的实例
2017/08/02 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
详解Python3中的 input() 函数
2020/03/18 Python
html5使用canvas画三角形
2014/12/15 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
超市采购员岗位职责
2014/02/01 职场文书
学习十八大的心得体会
2014/09/12 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
汶川大地震感悟
2015/08/10 职场文书