我正在建立我的新網站,並納入了一個選擇菜單,所以用戶可以排序結果,顯示的PHP,它運作良好,但無論何時頁面第一次顯示默認選項是總是代碼中的最後一個,所以對於下面的代碼,顯示的選項是'Free'選項,它應該是'None'選項。如果我去選擇名稱選項,同樣使用上面的示例,結果將正確顯示,但現在在框中的選項仍然是免費選項,無論如何,我可以將其更改爲正在使用的選項。選擇菜單不顯示正確的選項
對不起,如果這有點混亂,因爲我有兩個類似的問題,我需要排序。
這裏是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';
}
感謝您的幫助,我嘗試了您的建議,但我選擇的每個選項都會繼續返回「免費」選項。 –
@AlistairWise看看PaulPRO的答案,並嘗試將兩者結合起來。 – dSquared