首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPTAL条件属性

PHPTAL条件属性
EN

Stack Overflow用户
提问于 2011-12-29 15:55:51
回答 1查看 2.1K关注 0票数 1

给定一个如下的金属宏:

代码语言:javascript
复制
<tal:block metal:define-macro="foo">
    <option value="1">Foo</option>
    <option value="2">Bar</option>
    <option value="3">Baz</option>
</tal:block>

以及一个模板,它使用如下宏:

代码语言:javascript
复制
<select>
    <tal:block tal:define="selectedValue 2" metal:use-macro="foo" />
</select>

我需要向宏添加什么,以便生成的如下所示

代码语言:javascript
复制
<select>
    <option value="1">Foo</option>
    <option value="2" selected="selected">Bar</option>
    <option value="3">Baz</option>
</select>

我尝试过各种不同的方法,使用php:表达式,甚至定义自己的TALES函数,但似乎没有什么能给我带来我想要的东西。

浏览器将selected属性显示为实际选中的任何选项。这意味着selectedselected=""selected="foo"等所有选项都将被选中。PHPTAL有一个内置的attribute value | nothing语法来解决这个问题,但在nothing为空的情况下,这只能返回到value,这对我没有帮助,因为我需要将它与值进行比较。像这样的东西(不起作用):

代码语言:javascript
复制
<option value="2" tal:attributes="selected (selectedValue == 2 ? 'selected' : NULL) | nothing">Bar</option>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-29 16:56:46

这就足够了:

代码语言:javascript
复制
tal:attributes="selected php:selectedValue == 2"

PHPTAL了解selectedchecked等属性,并将布尔值转换为正确的值。

php:selectedValue == 2 ? 'selected' : NULL也能工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8670037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档