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 获取远程文件内容的函数代码
Mar 24 PHP
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
php关于array_multisort多维数组排序的使用说明
Jan 04 PHP
phpmyadmin3 安装配置图解教程
Mar 29 PHP
PHP中extract()函数的定义和用法
Aug 17 PHP
屏蔽机器人从你的网站搜取email地址的php代码
Nov 14 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
Yii入门教程之目录结构、入口文件及路由设置
Nov 25 PHP
php实现的农历算法实例
Aug 11 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 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
Function eregi is deprecated (解决方法)
2013/06/21 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
php实现俄罗斯乘法实例
2015/03/07 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
Javascript图像处理思路及实现代码
2012/12/25 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
BootStrap Fileinput上传插件使用实例代码
2017/07/28 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
Python 获取windows桌面路径的5种方法小结
2019/07/15 Python
python 字典的打印实现
2019/09/26 Python
python队列原理及实现方法示例
2019/11/27 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
食品安全承诺书
2014/05/22 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
小数乘法教学反思
2016/02/22 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
Golang 字符串的常见操作
2022/04/19 Golang