您好我已经设置了一个基于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";
请给我一个将所选值设置为当前值的方法。 感谢
答案 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>";
}