我将可排序的链接布局更改为选择下拉列表。但是我不知道如何选择选定的选项。
这是我到目前为止的代码。我更改了sortable.link htwl twig为
<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有效,但是再次加载时不会显示所选选项。请指教 :(也许这也不是设置选择下拉菜单的最佳方法。我的代码的任何改进都将不胜感激
编辑
我查看了其他模板示例,看到您可以抓住方向和顺序,它在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 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>