ajax prestashop 1.5前端控制器

时间:2013-04-05 10:21:19

标签: ajax controller prestashop

如何在prestashop中由控制器调用的新页面中进行ajax调用。例如:

-i在根文件夹中有一个表单页面调用formulario.php - 这个页面调用控制器文件夹中的FormularioController.php并显示我完美的tpl和页面,tpal是在themes / default文件夹中

但是当我进行Ajax调用以检查表单并加载错误或结果在div中它将所有页面再次放在div中而不仅仅是我调用的response.php时,问题就出现了。

如何解决此问题的任何想法,或从页面进行ajax调用的指南。关于ajax的prestashop的文件不清楚

谢谢

1 个答案:

答案 0 :(得分:1)

你找到这个页面了吗? http://doc.prestashop.com/display/PS15/Using+jQuery+and+Ajax#UsingjQueryandAjax-MakingAjaxcallswithjQuery

我用它来开发我的模块。它还可以帮助你把很多东西带到使用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));

希望你得到你需要的东西。