php模块化供前端ajax调用的实现

2023-11-12

背景:没有使用php框架
由于临时需求,需要ajax调用php中的方法,简单的写了一个php文件,文件定义了两个方法,如何用ajax分别调用同一个php文件不同的方法。
以下是abc.php文件,我定义的两个方法a方法和b方法

<?php
    class abc
    {                   
        function a(){           
            echo something;
        }
        function b($args){         
            echo something;
            }
        }
    }
?>

以下是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));                              
                }    
            }  
        } 
        catch (Exception $exc) {    
            echo $exc->getTraceAsString();  
        }
    }
?>

使用ajax调用时,使用如下写法实现只调用abc.php中的a方法:

$.ajax({
         type:"POST",
         url: 'Controller.php?action=abc/a',    
         dataType: 'json',
         success: function(data) {

         }
      });

如果需要传参数,可以这么写来调用:

$.ajax({
         type:"POST",
         url: 'Controller.php',   
         data:{
            action=abc/b,
            参数1: 123,
            参数2: 456} 
         dataType: 'json',
         success: function(data) {

         }
      });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php模块化供前端ajax调用的实现 的相关文章

  • Symfony2 Twig 扩展

    我在实现树枝扩展时遇到一些问题 我需要创建自己的过滤器 子过滤器 所以我想到了使用twig扩展 我在 MyApp Bundle WebsiteBundle 和文件上创建了一个名为 Extension 的文件夹 网站扩展 php namesp
  • PHP 中的 MongoDB - 如何将项目插入集合中的数组中?

    这必须很容易 但我似乎无法弄清楚 假设我有一个集合users这是集合中的第一项 id ObjectId 4d8653c027d02a6437bc89ca name Oscar Godson email email protected cdn
  • 使 pdo::query 静态

    当我运行下面的代码时出现此错误 我通常使用 msql 函数 但我尝试使用 PDO 代替 怎么了 致命错误 第 14 行无法静态调用非静态方法 PDO query
  • 运行没有扩展名的 PHP 页面

    我想在 apache Web 服务器上运行我的 PHP 网页 而不需要 php扩大 所以我添加了以下代码 RewriteEngine on RewriteBase Rewritecond REQUEST URI NC RewriteRule
  • SMTP 配置在生产中不起作用

    我正在尝试在提交表单时发送电子邮件 我正在使用 PHPMailer 使用以下配置发送邮件 mail new PHPMailer mail gt isSMTP mail gt Host mail example in mail gt Port
  • 在值中包含换行符

    我有一个 Word 模板 其中 php 代码中定义了值 在PHP代码中 document gt setValue Value1 value1 在word模板中 Value1 如何将包含两个值之间的断线的值包含在单词的值中 Replace n
  • Yii2 异常:ApcCache 需要加载 PHP apc 扩展

    在高级模板前端的主配置中配置缓存组件时 我收到异常 在我的 php ini 上启用了扩展 rsults 如何解决此问题 前端 config main php cache gt class gt yii caching ApcCache ke
  • PHP 开发相当于 Mongrel/Webrick 吗?

    PHP 开发中是否有与 Rails 开发期间使用 Mongrel Webrick 等效的方法 我通常在端口 3000 上使用 Mongrel 在开发过程中为我的 Rails 应用程序提供服务 我从事 PHP 开发已经有几年了 据我所知 方法
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 在 Laravel 5 中截断表

    描述 我有一个充满测试数据的表 有时 我想清除它以获取新数据 我可以在 DBMS 应用程序中执行截断 例如MySQL 工作台 但我试图在我的应用程序中实现它 Goal 创建一个按钮 单击时截断数据库中的表 这是我的步骤 1 声明一条路线 R
  • Magento - 检查 cms 页面

    我想通过 php 检查页面是否是 Magento 中的 cms page 我需要不同的 cms 页面面包屑 所以我尝试在一个条件下做到这一点 但我不知道如何或在哪里查看 到目前为止 这是我的 breadcrumbs phtml p some
  • WordPress 分页自定义帖子类型

    我有一个名为 新闻 的页面 使用页面模板page newslist php 它应该显示来自自定义帖子类型 也称为新闻 的帖子 我意识到两者具有相同的名称会导致问题 因此在注册自定义帖子类型时 我进行了重写以将其与页面区分开来 rewrite
  • 使用php将数据存储到文本文件中?

    我正在尝试将数据存储在文本文件中 例如使用 php 将数组存储到文本文件中 而不是存储到 mysql 数据库中 例如 这里是要存储在文本文件中的数据 name gt john age gt 25 location gt australia
  • fgetcsv 在特定行打开?

    有没有办法使用 fgetcsv 在特定行上打开 我有一个非常大的 csv 想通过 ajax 一次运行大约 100 行 我可以轻松停止 while 循环 但如何在特定行上打开 或者这是不可能的 从第 100 行开始读取没有简单的方法 但您可以
  • 强制 Composer 下载 git repo 而不是 zip

    我对作曲家有一些问题 require php gt 5 3 2 kriswallsmith buzz 0 7 Repo https github com kriswallsmith Buzz tree v0 7 https github c
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • 如何在 Zend Framework 3 中注册自定义表单视图助手

    我正在将继承的 Zend Framework 2 应用程序迁移到 Zend Framework 3 并且在注册自定义表单视图助手时遇到了一些困难 这些助手在应用程序使用版本 2 时起作用 主要用于添加标签属性以实现可访问性 例如 这是一个自
  • php curl 使用 GET 发送变量 奇怪的结果

    我正在尝试调用远程站点上页面中的网址 决定使用curl 在远程站点上 url 变量显示为 REQUEST Array var1 gt val1 amp var2 gt val2 amp var3 gt val3 被调用的url是 http
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • 如何在laravel中注册后自动登录

    我在 laravel 中注册用户时遇到问题 user假设是包含所有数组元素的数组 同时自动登录以下代码结果false 数据库中保存的密码是hash make password user id this gt user model gt ad

随机推荐

  • 用axure给按钮图片等添加点击事件跳转页面

    由于公司产品离职 只能自己做了 汗 整体过程挺好理解的 拖拽一个图片 双击能设置背景图片 然后选中按钮 并双击OnClick 2 在弹出的视图中可以修改点击事件的名字 3 由于我这个是在当前页面弹出二级页面 所以点击Current Wind
  • python tk库

    tk库是 Python 的一个图形用户界面 GUI 库 可以用来创建窗口 菜单 按钮 文本输入框等 GUI 元素 可以通过它在 Python 中创建复杂的图形界面 使用 tk库时 需要先导入 tkinter 模块 然后使用 tkinter
  • python与vb可以互换吗_vb和python混合编程

    展开全部 解题思路 把 Python 设计成带命令行参数调用的形式 在 VB6 中借助 IWshRuntimeLibrary WshShell Exec 方法进行命令行参数调用 通过 IWshRuntimeLibrary WshExec S
  • 闲谈开闭原则——基于UI动画框架

    本文继续聊另外一个设计原则 开闭原则 在UI动画框架中 开闭原则在 动画策略 和 移动算法 这两个类体系中均有所体现 照旧 先看一下开闭原则的定义 1 开闭原则 一个软件实体如类 模块和函数应该对扩展开放 对修改关闭 有人说过 唯一不变的就
  • No artifacts marked for deployment 解决方法(ideaweb项目配置tomcat步骤)

    No artifacts marked for deployment 出现这种情况的原因 创建新项目的时候要先添加freework support 步骤如下 添加完成后点击添加tomcat的位置 有main的情况也不影响 接下来按下面步骤就
  • 【airtest架构】pytest+pocoui+airtest+allure 完成安卓UI自动化框架

    一 背景 为了做app的自动化 由于app元素定位麻烦或者定位不稳定 又或者使用驱动版本等原因 不想使用启动appnium服务的方式 本文采用网易的airtest框架图像识别作为基础 配合pytest进行简单的二次开发形成一套对安卓app
  • 操作系统内存管理4.21

    离散内存管理方案 为了提高内存的利用率 缺点 访问效率下降 分页式内存管理方案 现代操作系统常用方案 分段式内存管理方案 段页式内存管理方案
  • 【Vue】/deep/、>>>、v::deep 三种深度选择器

    在 Vue项目中 当一个组件使用了 scoped 特性时 组件内的样式只会应用于组件自身 但是有时候我们需要在 父组件中改变子组件中的样式 这时就需要用到深度选择器 一 deep 二 gt gt gt search input gt gt
  • uni-app 使用Weex/nvue的注意事项

    介绍 uni app App端内置了一个基于 weex 改进的原生渲染引擎 提供了原生渲染能力 在App端 如果使用vue页面 则使用webview渲染 如果使用nvue页面 native vue的缩写 则使用原生渲染 一个App中可以同时
  • java 日历 获取月份_使用Java日历获取月份和年份的星期

    要使用Calendar类 请导入以下程序包 import java util Calendar 创建一个Calendar类对象 Calendar cal Calendar getInstance 现在 使用以下字段获取月份和年份的星期 Ca
  • 浅析:Spring框架中IOC容器和Bean的配置

    一 IOC和DI的解释 1 IOC Inversion of Control 反转控制 在应用程序中的组件需要获取资源时 传统的方式是组件主动的从容器中获取所需要的资源 在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式 增加
  • 深度学习在情感分类中的应用

    简介与背景 情感分类及其作用 情感分类是情感分析的重要组成部分 情感分类是针对文本的情感倾向进行极性分类 分类数量可以是二分类 积极或消极 也可以是多分类 按情感表达的不同程度 情感分析在影音评论 商品评价 舆情分析 股民基金情感分析等都有
  • csgo显示服务器ip,CSGO所有服务器IP段/地理位置

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 SDR服务器IP段 atl addresses 162 254 199 170 27015 27050 162 254 199 171 27015 27050 ams addresses 155
  • 【构建ML驱动的应用程序】第 7 章 :使用分类器编写推荐

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 【C++/STL】手撕红黑树

    文章目录 1 红黑树的概念 1 1红黑树的性质和规则 2 红黑树的模拟实现 2 1节点的定义 2 2节点的插入 1 情况一 u存在且为红色 2 情况二 u不存在 u存在且为黑 并且g p cur为一条直线 3 情况三 u不存在 u存在且为黑
  • Ansible基础3——playbook

    文章目录 一 基本了解 二 编写playbook 2 1 单剧本 2 2 多剧本 2 3 特权升级 2 4 语法优化 三 模块查找 一 基本了解 为什么要写playbook 前面我们可以使用临时命令对受控机进行操作 但当有重复性的工作时就不
  • 自定义带参数二维码扫码进入微信小程序获取参数

    第一步 需要进入小程序后台 开发设置里 添加二维码规则 第二步 添加好扫码进入的规则 比如扫码进去小程序的指定页面 1 协议类型选择https 2 选择小写 3 二维码规则 这个看文档有些人估计会比较迷糊 简单理解一下就是一个https的路
  • 后台@RequestBody接收对象List属性为null

    后台 RequestBody接收对象List属性为null 前端把一个本应传String类型的属性 传成了List数组 会导致后面的所有List属性都会变成null
  • C语言扫雷解析

    目录 扫雷功能说明 游戏界面 游戏分析设计 数据结构的分析 文件结构设计 扫雷游戏代码的实现 game h game c 初始化数组 打印棋盘 布置雷 统计周围雷的个数 排查结果判定 test c 扫雷功能说明 使用控制台实现经典的扫雷游戏
  • php模块化供前端ajax调用的实现

    背景 没有使用php框架 由于临时需求 需要ajax调用php中的方法 简单的写了一个php文件 文件定义了两个方法 如何用ajax分别调用同一个php文件不同的方法 以下是abc php文件 我定义的两个方法a方法和b方法