【问题标题】:ajax prestashop 1.5 front controllerajax prestashop 1.5 前端控制器
【发布时间】:2013-09-20 03:26:28
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: ajax controller prestashop


    【解决方案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));
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-14
      • 2011-07-04
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 2013-10-23
      • 1970-01-01
      • 2015-07-19
      相关资源
      最近更新 更多