如何在prestashop前端自定义模块中调用ajax
问题描述:
我有一个创建前端页面的模块,显示特定抽奖的获胜者,我想在年份(获奖年份)中添加一个过滤器通过AJAX请求和改变我的div如何在prestashop前端自定义模块中调用ajax
在我display.tpl前端的我添加下面的JavaScript
<script type="text/javascript">
{literal}
function QuickLook() {
var year = $("#year").val();
alert(year);
$.ajax({
url: baseDir+'/modules/addwinners/controllers/front/displaybyajax.php',
type: 'get',
data: 'ajax=true&year='+year,
success: function(response) {
alert(response);
console.log('success');
// OTHER SUCCESS COMMAND - CHECK THE RETURN VALUE
document.getElementById("winnersDiv").innerHTML=response;
}
});
return false;
}
{/literal}
但其抱怨致命错误:类 'ModuleFrontController' 未找到
答
通过以这种方式访问您的控制器,调用程序未被调用并且Prestashop核心类未加载,您无法直接使用其完整路径访问您的模块控制器:/modules/addwinners/controllers/front/displaybyajax.php
。
你需要打电话给控制器的Prestashop方式:
<script type="text/javascript">
{literal}
function QuickLook() {
var year = $("#year").val();
alert(year);
$.ajax({
url: baseDir + 'index.php?controller=displaybyajax&redirect=module&module=addwinners',
type: 'get',
data: 'ajax=true&year='+year,
success: function(response) {
alert(response);
console.log('success');
// OTHER SUCCESS COMMAND - CHECK THE RETURN VALUE
document.getElementById("winnersDiv").innerHTML=response;
}
});
return false;
}
{/literal}
</script>