我正在使用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>';
}
}
答案 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>';
}
...