我构建了创建表单的插件:
function smarty_function_form(array $parameters, Smarty_Internal_Template $smarty) {
$form = new Form($parameters);
$smarty->form_object = $form;
return $form->output_opentag();
}
当我调用它并在里面使用"if"标签时,我收到语法错误和"太多速记属性"错误。
我是这样使用它的:
{form name="the_name" {if $var == 5}class="active"{/if} method="post" action=""}
如果我删除"if"标签,它就可以工作了。如何解决?谢谢。
您不能在标签中嵌套 Smarty 标签或块。对于您的问题,有一个非常简单的解决方案:将{if}
移到{form}
标记之前:
{assign var=class value=''}
{if $var == 5}
{assign var=class val=active}
{/if}
{form name="the_name" class=$class method="post" action=""}
然后,在 {form}
插件的 PHP 代码中,如果 class
参数的值为空并且您不想生成类似 class=""
的东西(顺便说一下,这是无害的),您可以跳过生成 class
属性。