我想将ajax数据发送到控制器页面,并在prestashop 1.6中的模板文件上显示ajax数据。
我正在使用此方法,但无法获得任何结果-
tpl文件:
<input type="button" class="btn btn-primary" id="test" onclick = "testing()" value="test" />
function testing() {
url = '{$link->getModuleLink("hotelapi", "filter")|escape:"html"}';
$.ajax({
url: url,
type : 'GET',
cache : false,
data : {
ajax: 1,
action: 'fetchTPL',
},
success: function(html){
alert("SUCCESS:");
},
error: function() {
alert("ERROR:");
}
});
}
Front Controller文件-文件名为-filter.php
<?php
/*require (dirname(__FILE__) . '/../../../../config/config.inc.php');
require (dirname(__FILE__) . '/../../../../init.php');*/
class hotelapiFilterModuleFrontController extends ModuleFrontController
{
public function displayAjaxFetchTPL()
{
echo 'hello';
//after processing all data just assign it to smarty of content
/*$this->context->smarty->assign(array(
'youContentData' => $_POST['room'])
);
// to fetch a tpl file use fetch method and use die function to return the response to ajax
die($this->context->smarty->fetch('a1.tpl'));*/
}
}
我的ajax网址执行成功,但是我无法打印在displayAjaxFetchTPL操作中编写的任何内容。
请任何人帮助我解决这个问题。
感谢和问候, 里迪布塔尼(Ridhi Bhutani)
答案 0 :(得分:0)
为什么不使用按钮上的“ onclick”事件,为什么不使用JQuery事件lsitener?
您的HTML应该是这样的:
<input type="button" class="btn btn-primary" id="test" value="test" />
您的JS是这样的:
$("#test").on("click", function () {
url = '{$link->getModuleLink("hotelapi", "filter")|escape:"html"}';
$.ajax({
url: url,
type: 'GET',
cache: false,
data: {
ajax: 1,
action: 'fetchTPL',
},
success: function (html) {
alert("SUCCESS:"+html);
},
error: function () {
alert("ERROR:");
}
});
});
答案 1 :(得分:0)
php:
public function displayAjaxFetchTPL()
{
$data = ['mYtxt' => 'hello'];
die(Tools::jsonEncode($data));
}
jquery:
success: function (html) {
alert(html.mYtxt);
},