【问题标题】:Call PHP function in particular class via Ajax通过 Ajax 在特定类中调用 PHP 函数
【发布时间】:2014-10-08 06:57:44
【问题描述】:

我正在使用 Zend 框架。

我的 PHP 类为:

文件名:AdminController.php 路径:/admin/AdminController.php

Ajax 功能:

function exportToExcel()
  {

  $.ajax({
  url: "/admin/AdminController/testFunction",
  type: "POST",
  success: function(output){
  alert("Sucess "+output);
  }
  });
 }

PHP 类:

class AdminController extends AbstractActionController
{
  public function testFunction()
  {
    return 'Its a test!!!';
  }
}

但我没有成功提醒:

Sucess Its a test!!!

可能是什么错误?

如何调用php函数特别是phpclass/file???

【问题讨论】:

  • 你用的是什么php框架?
  • 您是否尝试为 GET 设置路由器(我不使用 Zend)并检查浏览器 url /admin/AdminController/testFunction?你看到任何回应了吗?
  • @Cheery 先生,我明白了:发生 404 错误页面未找到。
  • 但是你添加了路由器的路径吗?据我所见(我更喜欢 Symfony 的典型功能)来自控制器的功能在路由器中分配,它们的名称应以 Action 结尾
  • @Cheery 表示我应该将函数名称重命名为 testFunctionAction???

标签: javascript php jquery ajax


【解决方案1】:

试试

class AdminController extends AbstractActionController
{
  public function testFunction()
  {
    echo 'Its a test!!!';
  }
}

当您“返回”时,函数返回对象,这就是您将数据从模型返回到控制器的方式,但是当您需要向客户端发送数据时,这里使用 AJAX,您需要打印数据。

更新

尝试在浏览器中打开 url,即转到http://www.your.domain.com/admin/AdminController/testFunction,如果服务器配置正常,您应该在屏幕上看到Its a test!!!。 如果你没有看到它,请按照this guide配置你的服务器,特别是关于'Create Route'的部分

【讨论】:

  • 我想从这个函数返回文本到ajax
  • 刚才使用了echo,但是没有效果
  • 在浏览器中打开网址时看到了什么?
  • 什么都没有。我有一个 html 按钮,我从它上面调用 javascript 函数并希望在 php 类中调用 ajax 函数
  • @Kuf 加载资源失败:服务器响应状态为 404(未找到)example.com/admin/AdminController/testFunction
【解决方案2】:

在 ajax 调用中尝试使用完整的 url

 url: "http://example.com/admin/AdminController/testFunction",

确保您为此设置了路线。

必须使用echo , print 或任何打印方法发回输出

public function testFunction() {
  echo 'Its a test!!!';
}

如需更多错误,请检查您的浏览器控制台是否有错误

【讨论】:

  • 加载资源失败:服务器响应状态为404(未找到)example.com/admin/AdminController/testFunction
  • @ÁngelDiMaría 这意味着你没有设置正确的路由到这个函数。类的方法不是由 url 调用的,这是框架在你告诉它这样做时正在做的事情。
  • @ÁngelDiMaría URL 不是路由。在 Zend Framework 中,路由器是一个类(或框架配置中的数组),它在请求的 URL 和 Action Controller 以及其中的方法之间建立对应关系。我不确定你是否看过 Zend 的手册。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
  • 2012-09-30
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
相关资源
最近更新 更多