当前位置: 首页 > 知识库问答 >
问题:

如何在prestashop 1.7中进行管理ajax调用。6.

苏昂雄
2023-03-14

我想在Prestashop管理员中打一个ajax电话:

我创建了一个没有配置页面的模块。它只是在后台页面添加了一个按钮,我试图对我的模块文件进行ajax调用,但没有成功。

在前端进行ajax调用是可行的(我在modules/mymodule/controller/front/directory中添加了一个ajax.php文件),我尝试为admin做同样的事情,但根本不起作用。

我所做的:

  • 从actionAdminControllerSetMedia加载js文件正常
  • 将此添加到作曲家中。json文件:
    "autoload": {
      "psr-4": {
        "MyModule\\Controller\\": "controllers/admin/"
      },
      "config": {
        "prepend-autoloader": false
      },
  • 创建了controllers/admin/ajax。包含此代码的php文件(基于此文档代码):
namespace MyModule\Controller;
use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController;

class DemoController extends FrameworkBundleAdminController
{
    public $auth = false;
    public $ssl = true;
    public $ajax = true;
    public $errors = false;
    public $message;

    public function __construct()
    {
        parent::__construct();
    }
 
    public function initContent()
    {
        parent::initContent();
    }
    
    public function postProcess()
    {
        PrestaShopLogger::addLog("MODULE CONTROLLER OK ", 1);
    }

    public function displayAjax()
    {
            $this->ajaxDie(json_encode(array('success'=> !$this->errors, 'message' => $this->message)));
    }
}

然后,我尝试在js中以不同的方式调用ajax,但从未成功(post query返回是来自prestashop的消息“page not found”,带有http 200响应)。

该文档不是很有帮助,我只找到旧的消息/方法(从Prestashop 1.7.5我可以创建一个自定义管理控制器,但它不起作用),有人能解释我要遵循的步骤吗?

谢啦

共有1个答案

陈正业
2023-03-14

假设是PS1。7单元,使用Symphony:

  1. 在管理员控制器(src/controller/admin)的方法中声明一个链接,例如
$adminLink = $this->generateUrl()

并以下列方式返回:

return $this->render
$.ajax({
            url: adminLink,
            type: 'POST',
            async: false,
            data: {

            },
            success: (data) => {
            }
        });

注意:检查generateUrl和render函数以获取必要的参数。

 类似资料:
  • 问题内容: 我想在我的页面上有一个链接(是否有更好的选择?),单击该链接将发出Ajax请求。(单击链接后,我想更新数据库中的字段。) 实现此目的的最简单方法是什么? 你能推荐我一些教程吗? 问题答案: 真的很简单。在您看来,有这样的链接/按钮。重要的一点是 :remote = > true 要么 显然,您必须获取update_thingy_path才能正常解决某些问题。区别在于渲染时将渲染 .js

  • 问题内容: 请保持谦虚,因为我还是Web编程的新手,而Ajax的新手! 我创建了一个C#函数,该函数从mssql数据库中提取数据,将其格式化为json字符串并返回。现在,我需要通过与C#代码文件相关的aspx页面,从我的javascript(jQuery)滑块进行调用。 实际上,我以前从未做过类似的事情,通过谷歌搜索可以知道我需要使用xmlHttpRequest,但是如何使函数完全掌握这个字符串呢

  •   Python内存由Python私有堆空间管理。所有Python对象和数据结构都位于私有堆中。程序员无权访问此私有堆,解释器负责处理此私有堆。   Python对象的Python堆空间分配由Python内存管理器完成。核心API提供了一些程序员编写代码的工具。   Python还有一个内置的垃圾收集器,它可以回收所有未使用的内存并释放内存并使其可用于堆空间。

  • 我正在开发WP插件,当用户输入时,将获得针对该的帖子。它在管理方面工作正常。我已经按照这个例子通过AJAX调用获取数据,但现在我试图在前端这样做,任何人都可以输入并获得结果。我已经删除了我用来在管理端创建页面的功能。现在我有3个函数命名: 你好,word() ajax\u脚本() ajax_处理器() 我试着用下面的钩子来注册,但它不起作用 添加操作('admin_footer','ajax_sc

  • 我在DialogFlow的官方网站上使用Node.js找到了这个示例,它运行良好,但我不知道如何将其集成到我的web应用程序中。 我可以将它集成到我的其他javascript jquery代码中吗?这里我需要运行节点index.js,但是如果我与代码集成,我还需要这样做吗? DialogFlow v1使用起来非常简单。我有这样的东西:

  • 根据企业需求选择允许/不允许员工修改自己在企业中的名字。 人员管理-人事管理-人员管理-员工个人资料权限管理-编辑-保存。