1

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

-我在根文件夹中有一个表单页面调用 formulario.php -此页面在控制器文件夹中调用 FormularioController.php 并向我展示了完美的 tpl 和页面,tpal 在主题/默认文件夹中

但是,当我进行 Ajax 调用以检查表单并将错误或结果加载到 div 中时,它会再次将所有页面放入该 div 中,而不仅仅是我调用的 response.php。

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

谢谢

4

1 回答 1

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));

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

于 2013-09-19T19:26:28.453 回答