Smarty使用变量而不是总形式

时间:2015-06-10 11:48:58

标签: php variables smarty

我有一个像这样的聪明的表格

<form class="psmd-form psmd_"> 
   <div class="psmd-fields"> 
  {if {$display_fields} == 1 || {$display_fields} == 2 } 
      <input type="text" placeholder="Enter first name" name="psmd_fname" class="psmd_fname"> 
  {/if} 
  {if {$display_fields} == 2} 
      <input type="text" placeholder="Enter last name" name="psmd_lname" class="psmd_lname"> 
  {/if} 
      <input type="text" placeholder="Enter your email" name="psmd_email" class="psmd_email"> 
   </div> 
   <div class="psmd-btn-cont"> 
      <button class="psmd-btn">{$submit_button_text}</button> 
   </div> 
   <div class="psmd-clear"></div> 
   <div class="psmd-validation"></div> 
{$popup_content} 
</form>

现在我想要将总表单存储在变量中以及何时使用{$form}之类的变量 然后这个总形式应该是可见的。所以有人可以告诉我如何只在聪明的情况下做到这一点。任何帮助和建议都会非常明显。感谢

1 个答案:

答案 0 :(得分:0)

您可以使用{capture}内置Smarty功能准备一个文本块:

{capture name=form1}
<form class="smarty_form">
    <div class="form-fields">
        <input type="text" placeholder="Enter first name" name="fname" class="fname">
        <input type="text" placeholder="Enter last name" name="lname" class="lname">
        <input type="text" placeholder="Enter your email" name="email" class="email">
    </div>
    <div class="btn-cont">
        <button class="btn">Submit</button>
    </div>
</form>
{/capture}

它不会呈现在页面中,而是保存在内部的Smarty变量中。

您可以稍后在模板中使用它,如下所示:

{$smarty.capture.form1}    {* Use the name specified in the {capture} opening tag *}