【问题标题】:Request product data with Ajax [Prestashop 1.7]使用 Ajax 请求产品数据 [Prestashop 1.7]
【发布时间】:2020-12-01 09:15:23
【问题描述】:

我目前正在一家 prestashop 精品店实施 Google 跟踪代码管理器,我正在寻找一种从 JS 检索产品数据以发送数据层的方法。 ajax 是正确的方法吗?如果是这样,我如何从 ajax 请求中获取产品数据(名称、价格、类别、品牌......)?

非常感谢, 逻辑

【问题讨论】:

  • 是的,Ajax 就是这样,在这里看看我的回答,Stack question
  • 嗨@RobertinoVasilescu,感谢您的回答。我不确定完全理解在您在另一个线程上提供的答案中检索产品信息的方法。我正在通过 ajax 请求在 JS 中寻找 getting 产品信息。我是该领域的初学者,但我希望执行以下操作:Ajax 请求 /w product_id => 发送到 .php,处理以检索产品信息(名称、价格、类别等...) =>发送回 JS 以使用产品信息创建 GoogleTagManager 事件!我真的很努力,所以我需要一点点才能进入它。谢谢

标签: javascript ajax get prestashop product


【解决方案1】:

所以,你需要用ajax调用一个控制器方法:

$.ajax({
            url: your_admin_controller_URL,
            type: 'POST',
            async: false,
            data: {
                id_product: the _product_id_you want
            },
            success: (data) => {
                //do something
                });
            }
        });

然后在您的管理控制器(在您的模块中)中,以 your_admin_controller_URL 中指定的方法实例化一个产品

$product = new Product(id_product_from_ajax);
return $this->render('@Modules/your_module/views/admin_or_front/my_file.html.twig', [
product => $product]);

然后在你的 my_file.html.twig 中你有包含所有数据的产品变量。

【讨论】:

  • 嗨,感谢您的帮助@Robertino,我尝试了这种方法来创建一个新的产品对象 $product = new Product($id_product) 但不幸的是它不起作用并返回错误 500,我试图将其他值返回给我的 ajax 请求,它起作用了!剩下的唯一问题是新产品方法,对此有什么想法吗?
  • 查看网络服务器 (apache/nginx) 日志中的错误(或使用 Prestashop Logger 登录管理员或将错误写入模块中的日志文件)并查看它是关于什么的。你确定你从 ajax 获得了 Id_product 吗?它是一个int?如果你得到类似 "1" 的东西,用 (int) 将它转换为 int。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-26
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多