Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在prestashop 1.7.6中进行管理ajax调用_Prestashop_Prestashop 1.7_Prestashop Modules - Fatal编程技术网

如何在prestashop 1.7.6中进行管理ajax调用

如何在prestashop 1.7.6中进行管理ajax调用,prestashop,prestashop-1.7,prestashop-modules,Prestashop,Prestashop 1.7,Prestashop Modules,我正在尝试在Prestashop Admin中调用ajax: 我创建了一个没有配置页面的模块。它只是在后台页面添加了一个按钮,我试图对我的模块文件进行ajax调用,但没有成功 在前端进行ajax调用是可行的(我在modules/mymodule/controller/front/directory中添加了一个ajax.php文件),我尝试为admin做同样的事情,但根本不起作用 我所做的: 从actionAdminControllerSetMedia加载js文件是可以的 将其添加到compos

我正在尝试在Prestashop Admin中调用ajax:

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

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

我所做的:

  • 从actionAdminControllerSetMedia加载js文件是可以的
  • 将其添加到composer.json文件中:
  • 使用以下代码创建controllers/admin/ajax.php文件(基于):
然后,我尝试在js中以不同的方式调用ajax,但从未成功(post query返回是来自prestashop的消息“page not found”,带有http 200响应)

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


感谢

假设是PS1.7+模块,使用Symphony:

  • 在管理员控制器(src/controller/admin)的方法中声明一个链接,例如
  • 并以下列方式返回:

    return $this->render
    
  • 在您的视图中/js/back.js“
  • 注意:检查generateUrl和render函数以获取必要的参数

    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)));
        }
    }
    
    $adminLink = $this->generateUrl()
    
    return $this->render
    
    $.ajax({
                url: adminLink,
                type: 'POST',
                async: false,
                data: {
    
                },
                success: (data) => {
                }
            });