gpt4 book ai didi

ajax - 使用 ajax 调用 prestashop 模块

转载 作者:行者123 更新时间:2023-12-03 23:18:36 24 4
gpt4 key购买 nike

我有一个名为“MyMenu”的 PrestaShop 模块,我想用 AJAX 调用来调用这个菜单。
我的模块显示在hookFooter()方法:

public function hookFooter()
{
$display = $this->display(__FILE__, 'megamenu.tpl', $smartyCacheId);
Tools::restoreCacheSettings();
return $display;
}

我想用这个脚本显示:
<div class="load_menu"></div>
<script>
$(document).ready(function (e) {
$.ajax({
method: "POST",
url: "../modules/MyMenu.php",
data: {},
success: function (data) {
$('.load_menu').html(data);
}
})
});
</script>

最佳答案

最好的方法是通过链接到您的模块的前端 Controller 来完成。
您可以像这样调用网址:

$link->getModuleLink('modulename','controller', $parameters);
// Parameters is an optionnal array, it can be empty

对于 Controller ,放置一个像这样的文件 ./modules/modulename/controllers/front/ajax.php 具有这种内容:
class ModuleNameAjaxModuleFrontController extends ModuleFrontController
{
public function initContent()
{

$response = array('status' => false);

require_once _PS_MODULE_DIR_.'modulename/modulename.php';

$module = new ModuleName;

if (Tools::isSubmit('action')) {
$context = Context::getContext();

$cart = $context->cart;

switch (Tools::getValue('action')) {

case 'actionname':


$response = array('status' => true);

break;

default:
break;

}
}

// Classic json response
$json = Tools::jsonEncode($response);
$this->ajaxDie($json);

// For displaying like any other use this method to assign and display your template placed in modules/modulename/views/template/front/...
// $this->context->smarty->assign(array('var1'=>'value1'));
// $this->setTemplate('template.tpl');

// For sending a template in ajax use this method
// $this->context->smarty->fetch('template.tpl');

}
}

关于ajax - 使用 ajax 调用 prestashop 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42925427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com