如何扩展Prestashop ajaxCall函数来显示tpl文件内容?

时间:2016-06-23 14:37:38

标签: php ajax smarty prestashop

我在 blocklayered.php 中扩展 ajaxCall 功能时遇到问题

$smarty->assign(
   array(
     'myVariable' => 10,
     'homeSize' => ...,
     'nb_products' => $nb_products,
      ...
));

在我的 product-list.tpl 文件中,我有这个

{if isset($myVariable)} 
  {$myVariable}
{/if}

然后当我使用blocklayered(选择其中一个过滤器选项)页面由AJAX刷新并显示结果时显示 10 ,这是我的 myVariable 值。

问题是:如何显示其他内容而非 10 ,如.tpl文件和其他内容?

我也尝试了:

$smarty->assign(
   array(
     'myVariable' => $my_variable,
     'homeSize' => ...,
     'nb_products' => $nb_products,
      ...
));

 ...

$my_variable = $smarty->fetch(_PS_THEME_DIR_.'my_content.tpl');

没有成功......带有myVariable的JSON是空的,只是

" \n    "

1 个答案:

答案 0 :(得分:1)

你做得很好,只是错误的顺序(或以错误的顺序显示)。首先,您需要创建包含模板数据的变量,然后才使用它,例如:

$smarty->assign('myVariable', $smarty->fetch(_PS_THEME_DIR_.'my_content.tpl')));

或第一个$ myVariable = ...然后将其分配给tpl变量。 在这种情况下, myVariable 将包含tpl文件的内容。当然如果你想在 my_content.tpl 中从PHP传递一些其他数据(我的意思不仅仅是纯html),你需要先在 fetch 之前分配它/ p>