我在 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 "
答案 0 :(得分:1)
你做得很好,只是错误的顺序(或以错误的顺序显示)。首先,您需要创建包含模板数据的变量,然后才使用它,例如:
$smarty->assign('myVariable', $smarty->fetch(_PS_THEME_DIR_.'my_content.tpl')));
或第一个$ myVariable = ...然后将其分配给tpl变量。 在这种情况下, myVariable 将包含tpl文件的内容。当然如果你想在 my_content.tpl 中从PHP传递一些其他数据(我的意思不仅仅是纯html),你需要先在 fetch 之前分配它/ p>