我有一个模块,它创建一个前端页面,显示特定抽奖的获胜者,我想按年份添加过滤器(获胜年份),当我更改年份时,它必须通过ajax请求并更改我的div
在我的前端 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}
但它提示 fatal error :找不到类“ModuleFrontController”
最佳答案
您无法使用完整路径直接访问模块 Controller :/modules/addwinners/controllers/front/displaybyajax.php
通过这种方式访问您的 Controller ,不会调用调度程序,Prestashop核心类未加载。
您需要以 Prestashop 方式调用 Controller :
<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>
关于smarty - 如何在prestashop前端自定义模块中调用ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37772982/