-1

我有一个基于 PHP 的排序方法,带有一个用于对行进行排序的下拉菜单。有用。我有另一个排序链接来排序 id 和 title。它也有效。但是它们一起不起作用。

当我使用链接排序(比如按标题)时,结果会按标题排序,然后如果我使用下拉菜单对行进行排序,行会被排序,但结果会被设置回默认的 id 排序。

我的 ID 和标题排序代码:

    if ($orderby == 'title' && $sortby == 'asc')
{echo " <li id='scurrent'><a href='?rpp=$rowsperpage&order=title&sort=asc'>title-asc:</a></li> ";}
else {echo " <li><a href='?rpp=$rowsperpage&order=title&sort=asc'>title-asc:</a></li> ";}   

if ($orderby == 'title' && $sortby == 'desc')
{echo " <li id='scurrent'><a href='?rpp=$rowsperpage&order=title&sort=desc'>title-desc:</a></li> ";}
else {echo " <li><a href='?rpp=$rowsperpage&order=title&sort=desc'>title-desc:</a></li> ";} 

if ($orderby == 'id' && $sortby == 'asc')
{echo " <li id='scurrent'><a href='?rpp=$rowsperpage&order=id&sort=asc'>id-asc:</a></li> ";}
else {echo " <li><a href='?rpp=$rowsperpage&order=id&sort=asc'>id-asc:</a></li> ";}     

if ($orderby == 'id' && $sortby == 'desc')
{echo " <li id='scurrent'><a href='?rpp=$rowsperpage&order=id&sort=desc'>id-desc:</a></li> ";}
else {echo " <li><a href='?rpp=$rowsperpage&order=id&sort=desc'>id-desc:</a></li> ";} 
?>

我的行排序代码:

<form action="is-test.php" method="get">
<select name="rpp" onchange="this.form.submit()">    
<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>   
</select>
</form>    

此方法仅将每页的行数 (rpp) 传递到 url。我希望它通过 order、sort 和 rpp。有没有办法在表单字段中传递这些多个值。

4

1 回答 1

0

您是否也允许用户更改订单?

如果是这样,请为其添加另一个输入类型的输入。

如果没有,添加一个隐藏的输入<input type="hidden" name="sort" value="asc">或者只是让选项操纵 URL 而不是提交表单。另一个 Stackoverflow 解决方案的工作原理与此非常相似:https ://stackoverflow.com/a/1091005/319066

于 2012-06-01T05:44:21.993 回答