设置默认&下拉选择菜单中的当前选项

时间:2016-01-08 17:40:27

标签: html wordpress drop-down-menu

我正在使用Wordpress功能添加一个下拉列表,其中填充了自定义分类条目以过滤帖子。下拉菜单已创建并正确填充,但我无法设置默认值(我希望这是'所有批次')或在用户选择过滤选项时设置当前选择。

我尝试动态添加selected =“selected”,如下所示,但每次下拉值默认为选择菜单中的最终选项。 selected =“selected”正被添加到正确的选项中 - 我可以在firebug中看到它。

如何将默认选项设置为“所有批次”以及如何显示当前选择的选项?

function custom_taxonomy_dropdown( $taxonomy ) {
    $terms = get_terms( $taxonomy );
    if ( $terms ) {
        echo '<form id="sale_selector" method="POST">
            <select id="sale_selection" name="' . $taxonomy . '" class="postform">
                <option value="">All Lots</option>';
                foreach ( $terms as $term ) {
                    if ( $_POST["online_lot_category"] == $term->slug ){
                        $selected_option = 'selected';
                    } else {
                        $selected_option = '';
                    }
                    echo '<option selected="'.$selected_option.'" value="' . $term->slug . '">' . $term->name . '</option>';
                }
            echo '</select>
            <input class="filter_button" type="submit" value="OK">
        </form>';
    }
}

1 个答案:

答案 0 :(得分:0)

我假设&#34;当前选择的选项&#34;是$ _POST [&#34; online_lot_category&#34;]中指定的选项 - 如果没有设置,则默认为&#34;所有批次&#34;

如果要在下拉菜单中选择一个选项,则只需编写

<option value="somevalue" selected>text</option>

所以无论你是否输入

<option value="somevalue" selected="">text</option>

<option value="somevalue" selected="selected">text</option>

浏览器会将该选项解释为已选中。所以,你应该使用它:

...
foreach ( $terms as $term ) {
    if ( $_POST["online_lot_category"] == $term->slug ){
        $selected_option = ' selected';
    } else {
        $selected_option = '';
    }
    echo '<option value="' . $term->slug . '"' . $selected_option . '>' . $term->name . '</option>';
}
...