我正在构建我的新网站,并合并了一个选择菜单,以便用户可以对 PHP 显示的结果进行排序,它运行良好,但是每当页面第一次显示时,默认选项始终是页面中的最后一个。代码,因此对于下面的代码,显示的选项是“免费”选项,而它应该是“无”选项。同样使用与上面相同的示例,如果我选择名称选项,结果会正确显示,但是现在框中的选项仍然是免费选项,无论如何我可以将其更改为正在使用的选项。
抱歉,如果这有点令人困惑,因为我有两个类似的问题需要解决。
这是 HTML+PHP 代码。
<form method="get" style="display: inline;" name='orderby_form'>
<input type=hidden name='param1' value="<?php print $param1; ?>">
<input type=hidden name='param2' value="<?php print $param2; ?>">
<select name=orderby onChange="orderby_form.submit();">
<option value='name' <?php print $selected[$orderby]; ?>>Name</option>
<option value='difficulty' <?php print $selected[$orderby]; ?>>Difficulty</option>
<option value='payout' <?php print $selected[$orderby]; ?>>Payout</option>
<option value='newest' <?php print $selected[$orderby]; ?>>Newest</option>
<option value='free' <?php print $selected[$orderby]; ?>>Free</option>
<option> None</option>
</select>
</form>
这是 PHP 代码:
$selected = array();
$orderby = $_GET[orderby];
if(!$orderby) { $orderby = 'name'; }
if($orderby == 'name')
{
$orderby_query = "ORDER BY name";
}
else if($orderby == 'difficulty')
{
$orderby_query = "ORDER BY difficulty_rating ASC";
}
else if($orderby == 'payout')
{
$orderby_query = "ORDER BY penny_value DESC";
}
else if($orderby == 'newest')
{
$orderby_query = "ORDER BY date_added DESC";
}
else if($orderby == 'free')
{
$orderby_query = "AND free='1'";
}
else { unset($orderby); }
// If $orderby was valid set the selected sort option for the form.
if($orderby)
{
$selected[$orderby] = 'selected';
}
最佳答案
HTML 中选定的属性需要显示为 ....
尝试更改此设置:
if($orderby){
$selected[$orderby] = 'selected';
}
收件人:
if($orderby){
$selected[$orderby] = 'selected="selected"';
}
希望这会有所帮助!
关于php - 选择菜单不显示正确的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8262900/