使用jquery加载smarty tpl

Car*_*osa 1 jquery smarty

我想用jquery在div中加载一个聪明的tpl部分,我得到:

JS:

function load_new_partial() {

jQuery("#ajax_zone").fadeIn('slow').load('/views/partials/partil.tpl');
Run Code Online (Sandbox Code Playgroud)

}

在tpl调用者中:

<a href="#" onclick="load_new_partial();">{$language_array.lang_new_campaign}</a>
<div id="ajax_zone">initial div yadadada</div>
Run Code Online (Sandbox Code Playgroud)

叫tpl:

{$user_name_smarty}{$account_array}
Run Code Online (Sandbox Code Playgroud)

我点击显示partial.tpl没有问题,问题是加载的partial.tpl似乎没有得到我已经分配给smarty的任何变量.

我做错了什么?,如何加载部分并使其可以访问已经建立的智能变量?

$smarty->assign('user_name_smarty', $user_name_smarty);
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Nan*_*nne 5

如果您像这样加载它,则将其作为文本文件加载.您希望它请求一个PHP文件,它使用该TPL作为模板.

一般:

  • 请求PHP
  • 解析TPL(用变量做事)
  • 制作HTML
  • 在浏览器中显示

现在:

  • 请求PHP
  • 解析TPL(如果PHP使用tpl)
  • 制作HTML
  • 在浏览器中显示
  • 浏览器解析JQuery
  • 加载额外的tpl(不解析!)

正如您所看到的,在加载额外的tpl之后没有"解析tpl"

您可以使用ajax请求PHP文件,并将该请求的结果添加到您的div.