http://example.com/bills.php?sort=highest
http://example.com/bills.php?sort=alpha
http://example.com/bills.php?sort=lowest
因此,上面的网址按最高,字母和最低排序。他们使用$ _GET方法使用表单。我想知道是否有办法提交表格/获取$ _GET数据而不更改网址?
<form action="bills.php" method="get">
<select onchange="this.form.submit();" name="sort" class="right sort">
<option>What would you like to sort by?</option>
<option value="highest" <?php if(isset($_GET['sort']) && $_GET['sort'] == 'highest'){?> selected="selected" <?php } ?>>Highest to Lowest</option>
<option value="lowest" <?php if(isset($_GET['sort'])&& $_GET['sort'] == 'lowest'){?> selected="selected" <?php } ?>>Lowest to Highest</option>
<option value="alpha" <?php if(isset($_GET['sort'])&& $_GET['sort'] == 'alpha'){?> selected="selected" <?php } ?>>Alphabetically</option>
</select>
</form>
以上是我能够提交新排序请求的代码。
我想让我的网址留在example.com/bills.php
这可能吗?
是否可以使用.htaccess重写网址?我尝试了一种网址重写方法,可以让我访问http://example.com/bills/alpha
并且工作正常,但当我选择一个新查询时,它会变成http://example.com/bills/bills/?sort=alpha
。
这是我的.htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^bills/(.*)$ /bills.php?id=$1
答案 0 :(得分:4)
使用AJAX,您可以解决此问题。无需对.htaccess进行任何更改。以下代码可以帮助您:
$(".right").change(function(){
$.get("YourFile.php",{"sort":$(this).val()},function(res){
alert(res);
});
});