如何在prestashop中由控制器调用的新页面中进行ajax调用。例如:
-i在根文件夹中有一个表单页面调用formulario.php - 这个页面调用控制器文件夹中的FormularioController.php并显示我完美的tpl和页面,tpal是在themes / default文件夹中
但是当我进行Ajax调用以检查表单并加载错误或结果在div中它将所有页面再次放在div中而不仅仅是我调用的response.php时,问题就出现了。
如何解决此问题的任何想法,或从页面进行ajax调用的指南。关于ajax的prestashop的文件不清楚
谢谢
答案 0 :(得分:1)
我用它来开发我的模块。它还可以帮助你把很多东西带到使用ajax调用的其他模块(不记得是哪个)。
以下是你如何进行ajax通话:
var query = $.ajax({
type: 'POST',
url: baseDir + 'modules/mymodule/ajax.php',
data: 'method=myMethod&id_data=' + $('#id_data').val(),
dataType: 'json',
success: function(json) {
// ....
}
});
然后,您只需要创建PHP文件。使用这种方式,不会加载Prestashop核心,因此如果要使用Prestashop功能,则必须手动执行:
// HTTP headers for no cache etc
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
require_once(dirname(__FILE__).'/../../config/config.inc.php');
require_once(dirname(__FILE__).'/../../init.php');
要生成JSON输出,您可以使用:
die(Tools::jsonEncode($myArrays));
希望你得到你需要的东西。