【问题标题】:Dancer and template toolkit: <select> previous selectedDancer 和模板工具包:<select> 以前选择的
【发布时间】:2014-03-30 15:41:22
【问题描述】:

我正在使用模板工具包,带有 perl Dancer。我有一个表格,这个表格有一个选择。 我在提交表单并且页面返回到同一个表单后尝试,保持在select中选择的上一个项目。 Ldap_List 包含 10 个项目。

这是选择代码:

<form class="well form-inline" method="post" action="[% request.uri_base %]/foo/ldap">
<fieldset>  
<legend>Select the LDAP:</legend>
<select class="selectpicker" name="ldap_selected">
[% FOREACH ldap IN Ldap_List %]
   <option value=[% ldap %]>[% ldap %]</option>
[% END %]
</select>
<button type="submit" class="btn btn-primary">Go!</button>
</fieldset>
</form>

最后一个 ldap 被选中的变量是 ldap_selected,它的定义和值是正确的,我检查了它:

[% IF ldap_selected %]
   [% ldap_selected %]
[% END %]

我试过了,但是不行:

<select class="selectpicker" name="ldap_selected">   
   [% FOREACH ldap IN Ldap_List %]
       [% IF ldap == ldap_selected %]
           <option value=[% ldap %] selected>[% ldap %]</option>
       [% ELSE %]
           <option value=[% ldap %]>[% ldap %]</option>
       [% END %]
   [% END %]
</select>

因此,在选择中会出现 ldap_selected,但它是列表中唯一的一个选项。

我怎样才能做到这一点?

【问题讨论】:

    标签: perl template-toolkit dancer


    【解决方案1】:

    您只需要一个简单的HTML Form 标记围绕Select 标记,然后使用params-&gt;{'ldap_selected'} 之类的内容读取Perlscript 中的Form 参数。我可以建议阅读Dancer Documentation

    这个案例大家可以开始看here


    编辑:

    经过您的编辑,这似乎是一个Template Toolkit 问题。你说,你有ldap_selected 的价值,它似乎是你需要的价值。 [% IF ldap == ldap_selected %] 正是您需要做的事情。您的语法是正确的。

    我可以在那里看到 2 个可能的问题/解决方案:

    1. ldap_selected 包含换行符或未设置。
    2. ldap 包含换行符。

    在浏览器中使用 ctrl+u 检查每个变量的输出。也许你可以看到一个换行符。尝试使用硬编码 ldap_selected ([% IF ldap_selected == 'foo' %]) 和

    IF ... 部分
    [% FOREACH ldap IN [ 'foo', 'bar', 'baz' ] -%]
    

    ldap 部分。

    如果没有任何效果,请检查您是否更改了 TT 中的配置 MyWeb-App/config.yml

    【讨论】:

    • 我已经编辑了我的帖子,选择在表单内。问题是如何在 foreach 内部检查循环的当前元素是否具有相同的 ldap_selected 值
    • 看看我的编辑 :)
    • 谢谢!已解决 :) 换行符 >.
    猜你喜欢
    • 1970-01-01
    • 2011-11-21
    • 2013-01-27
    • 1970-01-01
    • 2015-12-12
    • 2011-12-26
    • 2011-05-18
    • 2012-07-29
    • 1970-01-01
    相关资源
    最近更新 更多