2013-04-05 70 views
1

如何在prestashop中由控制器調用的新頁面中進行ajax調用。例如:ajax prestashop 1.5前端控制器

-i必須在控制器文件夾的根文件夾 - 這個頁面調用FormularioController.php一個表單頁面調用formulario.php和顯示我完美的TPL和頁面時,tpal在主題/默認文件夾

但這裏是問題,當我做一個Ajax調用檢查窗體並加載錯誤或結果在一個div它把所有的頁面再次在該div中不僅是我稱之爲response.php。

任何想法如何解決這個問題,或從頁面進行ajax調用的指南。關於Ajax的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)); 

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