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 相关文章推荐
相对路径转化成绝对路径
Apr 10 PHP
php addslashes和mysql_real_escape_string
Jan 24 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
Jun 09 PHP
php 发送带附件邮件示例
Jan 23 PHP
php命名空间学习详解
Feb 27 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
Oct 09 PHP
PHP实现递归无限级分类
Oct 22 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
Apr 07 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
PHP数组array类常见操作示例
May 15 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
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
js播放wav文件(源码)
2013/04/22 Javascript
使用jquery修改表单的提交地址基本思路
2014/06/04 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
jquery实现自适应banner焦点图
2017/02/16 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
详解React 服务端渲染方案完美的解决方案
2018/12/14 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
python实现给数组按片赋值的方法
2015/07/28 Python
python3实现随机数
2018/06/25 Python
Python 如何创建一个线程池
2020/07/28 Python
浅析python函数式编程
2020/09/26 Python
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
数控技术应用个人求职信范文
2014/02/03 职场文书
《掌声》教学反思
2014/02/23 职场文书
关于召开会议的通知
2015/04/15 职场文书
孕妇病假条怎么写
2015/08/17 职场文书
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers