如何在 prestashop 1.7 中对自定义页面进行 ajax 请求
Posted
技术标签:
【中文标题】如何在 prestashop 1.7 中对自定义页面进行 ajax 请求【英文标题】:How to ajax request to custom page in prestashop 1.7 【发布时间】:2017-11-03 20:52:29 【问题描述】:我为我糟糕的英语道歉。我是 prestashop 的新手。请任何人帮助。如何将 AJAX 请求发送到 prestashop 中的自定义 php 文件
//My js file
$.ajax(
url : baseUrl + "modules/<myModule>/ajaxfunc.php",
type: "POST",
cache: false,
data : form_data: 1 , action:'imageuploadAction',
beforeSend: function()
$('body').append('<div class="loading_popup">Loading...</div>');,
success: function(data)
console.log(data);
);
// php file
// modules/<myModule>/ajaxfanc.php
<?php
include_once('../../config/config.inc.php');
include_once('../../init.php');
class ajaxfuncAjaxModuleFrontController extends ModuleFrontController
public function imageuploadAction()
die('here');
?>
我不知道它是否正确。请指导我。
【问题讨论】:
【参考方案1】:我找到了在 prestashop 1.7 中获取正确 Ajax 请求的解决方案
//在tpl文件中
<script>
var url= url entity='module' name='<myModuleName>' controller='<MyControllerName>' params = ['var1' => 1,'var2' => 2,action => 'MyControllerAction']
</script>
//在Js文件中
$.ajax(
url : url,
type: "POST",
data : 'var3='3,
success : function(response)
console.log(response);
);
//在控制器Php文件中
<?php
require_once(dirname(__FILE__).'../../../../config/config.inc.php');
require_once(dirname(__FILE__).'../../../../init.php');
class <MyModule><MyController>ModuleFrontController extends ModuleFrontController
public function initContent()
$this->ajax = true;
parent::initContent();
// displayAjax for FrontEnd Invoke the ajax action
// ajaxProcess for BackEnd Invoke the ajax action
public function displayAjaxMyControllerAction()
$var1 = Tools::getValue('var1');
$var2 = Tools::getValue('var2');
$var3 = Tools::getValue('var3');
header('Content-Type: application/json');
die(Tools::jsonEncode(['var1'=> $var3]);
【讨论】:
【参考方案2】:您可以在模块中使用 ajax 前端控制器,并使用钩子在模块本身中生成 Ajax 请求所需的 URL。
见Make an ajax request from a Prestashop module
【讨论】:
谢谢丹尼斯,我找到了其他解决方案以上是关于如何在 prestashop 1.7 中对自定义页面进行 ajax 请求的主要内容,如果未能解决你的问题,请参考以下文章