knp 分页器可在 select 下拉列表中排序
knp paginator sortable in select dropdown
我将可排序链接布局更改为 select 下拉菜单。但是我不知道如何让 selected 选项成为 selected.
到目前为止,这是我的代码。
我将 sortable.link htwl 树枝更改为这个
<option{% for attr, value in options %} {% if attr == 'href' %}value="{{ value }}" {% else %}{{ attr }}="{{ value }}"{% endif %}{% endfor %} >{{ title }}</option>
我的树枝文件如下所示:
<select onChange="window.location=this.value;">
{{ knp_pagination_sortable(properties, 'Title A-Z', 'a.title', {}, {'direction': 'asc'}) }}
{{ knp_pagination_sortable(properties, 'Title Z-A', 'a.title', {}, {'direction': 'desc'}) }}
</select>
下拉菜单 onchange 有效,但在再次加载时不显示 selected 选项。请指教 :)
也许这也不是设置 select 下拉列表的最佳方式。非常感谢我的代码的任何改进
编辑
我查看了其他模板示例,发现您可以获取方向和顺序,它还不能完全与 asc/desc 一起使用,它出错了。
这是我更新的选项代码。
<option{% for attr, value in options %} {% if attr == 'href' %}value="{{ value }}" {% else %}{{ attr }}="{{ value }}"{% endif %}{% endfor %} {% if app.request.get('direction') == 'desc' and app.request.get('sort') == key %} selected="selected" {% elseif app.request.get('direction') == 'asc' and app.request.get('sort') == key %} selected="selected"{% else%} no{% endif %}>{{ title }}</option>
然后我在 twig
上更新了 select
<select onChange="window.location=this.value;">
{{ knp_pagination_sortable(properties, 'Title A-Z', 'a.title', {}, {'direction': 'asc'}) }}
{{ knp_pagination_sortable(properties, 'Title Z-A', 'a.title', {}, {'direction': 'desc'}) }}
{{ knp_pagination_sortable(properties, 'price (low to high)', 'a.price', {}, {'direction': 'asc'}) }}
{{ knp_pagination_sortable(properties, 'Price (high to low)', 'a.price', {}, {'direction': 'desc'}) }}
</select>
感谢您的帮助。谢谢
我想我可以回答我自己的问题。
我只需要抓住方向而不是 desc/asc.
我认为它有效:)
<option{% for attr, value in options %} {% if attr == 'href' %}value="{{ value }}" {% else %}{{ attr }}="{{ value }}"{% endif %}{% endfor %} {% if app.request.get('direction') == direction and app.request.get('sort') == key %} selected="selected" {% endif %}>{{ title }}</option>
我将可排序链接布局更改为 select 下拉菜单。但是我不知道如何让 selected 选项成为 selected.
到目前为止,这是我的代码。 我将 sortable.link htwl 树枝更改为这个
<option{% for attr, value in options %} {% if attr == 'href' %}value="{{ value }}" {% else %}{{ attr }}="{{ value }}"{% endif %}{% endfor %} >{{ title }}</option>
我的树枝文件如下所示:
<select onChange="window.location=this.value;">
{{ knp_pagination_sortable(properties, 'Title A-Z', 'a.title', {}, {'direction': 'asc'}) }}
{{ knp_pagination_sortable(properties, 'Title Z-A', 'a.title', {}, {'direction': 'desc'}) }}
</select>
下拉菜单 onchange 有效,但在再次加载时不显示 selected 选项。请指教 :) 也许这也不是设置 select 下拉列表的最佳方式。非常感谢我的代码的任何改进
编辑
我查看了其他模板示例,发现您可以获取方向和顺序,它还不能完全与 asc/desc 一起使用,它出错了。 这是我更新的选项代码。
<option{% for attr, value in options %} {% if attr == 'href' %}value="{{ value }}" {% else %}{{ attr }}="{{ value }}"{% endif %}{% endfor %} {% if app.request.get('direction') == 'desc' and app.request.get('sort') == key %} selected="selected" {% elseif app.request.get('direction') == 'asc' and app.request.get('sort') == key %} selected="selected"{% else%} no{% endif %}>{{ title }}</option>
然后我在 twig
上更新了 select <select onChange="window.location=this.value;">
{{ knp_pagination_sortable(properties, 'Title A-Z', 'a.title', {}, {'direction': 'asc'}) }}
{{ knp_pagination_sortable(properties, 'Title Z-A', 'a.title', {}, {'direction': 'desc'}) }}
{{ knp_pagination_sortable(properties, 'price (low to high)', 'a.price', {}, {'direction': 'asc'}) }}
{{ knp_pagination_sortable(properties, 'Price (high to low)', 'a.price', {}, {'direction': 'desc'}) }}
</select>
感谢您的帮助。谢谢
我想我可以回答我自己的问题。 我只需要抓住方向而不是 desc/asc.
我认为它有效:)
<option{% for attr, value in options %} {% if attr == 'href' %}value="{{ value }}" {% else %}{{ attr }}="{{ value }}"{% endif %}{% endfor %} {% if app.request.get('direction') == direction and app.request.get('sort') == key %} selected="selected" {% endif %}>{{ title }}</option>