提交表单时如何保留当前的URL参数?

时间:2012-06-01 04:32:53

标签: php mysql html sorting

我有一个基于PHP的排序方法,带有一个下拉菜单来排序行。有用。我有另一个排序链接来排序ID和标题。它也有效。但是他们在一起工作不起作用。

当我使用链接排序(按标题说)时,结果按标题排序,然后如果我使用我的下拉菜单排序行,则排序行,但结果将设置回默认的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。有没有办法在表单字段中传递这些多个值。

1 个答案:

答案 0 :(得分:1)

您是否允许用户更改订购?

如果是,请为某种输入类型添加另一个输入。

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