PHP-如何在表单字段中显示当前选定的值

时间:2012-06-01 02:27:20

标签: php mysql html sorting

您好我已经设置了一个基于php的表单提交方法,用于在选择下拉菜单中对每页的行进行排序,它工作正常我可以根据选择的值对行进行排序,但我的问题是当被选中用于排序,它不会在表单选定字段中显示为当前选择

我的意思是,当在下拉菜单中选择选择值以排序行时,它应该在选项框中显示为当前 默认值,如果未选择任何内容,则默认行值应显示为当前

请在排序方法中参见此处here,它将当前(10)显示为默认行,当选择一个值时,它会在查询数据库后成为当前页面重新加载。< / p>

这是表单字段的 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";

请给我一个将所选值设置为当前值的方法。 感谢

2 个答案:

答案 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);
}

答案 1 :(得分: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>";
}