2012-06-01 100 views
0

您好我已經設置了基於PHP的表單提交方法,用於在選擇下拉菜單中對每頁的行進行排序,它工作正常,我可以根據值對行進行排序選擇,但我的問題是,當一個被選中進行排序它不會顯示在窗體選擇字段爲什麼當前選擇如何在窗體字段中顯示當前選定值

我的意思說的是,當值選擇在下拉排序列菜單,應該在選擇框爲默認值顯示作爲當前,如果沒有被選中,那麼默認行值應顯示爲,當前爲

看到這裏here在分選方法,它示出了電流(10),默認的行和當選擇一個值它查詢數據庫後隨着上頁面重新加載電流。

這裏是表單字段我的html代碼

<form action="is-test.php" method="get"> 
<select name="rpp" onchange="this.form.submit()"> 
<option selected value="">show</option><!-- i want default & current selected value here --> 
<option value="10">10</option> 
<option value="20">20</option> 
<option value="30">30</option> 
</select> 
</form> 

PHP代碼這個排序是:

$rowsperpage = ''; 
if (isset($_GET['rpp'])&& is_numeric($_GET['rpp'])) { 
$rowsperpage = (int) mysql_real_escape_string($_GET['rpp']); 
}else{ 
$rowsperpage='5'; 
} 

MySQL查詢這就是:

$sql2 = "SELECT * FROM $tablename ORDER BY $orderby $sortby LIMIT $rowsperpage OFFSET $offset"; 

請給我一個設置選擇值爲當前值的方法。 感謝

回答

1

在你<option>標籤,你應該執行的檢查是這樣的:

<option value="10" <?php if ($rowsperpage == 10) echo 'selected="selected"' ?>>10</option> 
<option value="20" <?php if ($rowsperpage == 20) echo 'selected="selected"' ?>>20</option> 
<option value="30" <?php if ($rowsperpage == 30) echo 'selected="selected"' ?>>30</option> 

所以如果您選擇20,它將顯示爲<select>的當前值

<option value="10">10</option> 
<option value="20" selected="selected">20</option> 
<option value="30">30</option> 

爲了讓事情變得更簡單,只需使用for循環是這樣的:

for ($i = 10; $i <= 30; $i+= 10) { 
    echo "<option value=\"$i\" ".($rowsperpage == $i ? 'selected="selected"' : '').">$i</option>"; 
} 
+0

這是工作,非常感謝快速重播。 –

1
<option selected value="<?php echo $rowsperpage; ?>"><?php echo $rowsperpage; ?></option> 

一個可能更好的方式做,這是一個循環:

for ($i = 10, $i <= 30; $i +=10) { 
    $selected = ($i == $rowsperpage) ? ' selected="selected"' : ''; 
    echo sprintf('<option value="%d"%s>%d</option>', $i, $selected, $i); 
} 
+0

我已經試過這樣的,但它顯示在下拉菜單與當前值一個額外的行。 –

+0

第二種方法工作,謝謝 –

相關問題