我有一个类似电子商务网站的网站,在这里我可以按类别,价格,视图,日期和喜欢来过滤产品。所以我做了两个变量$ catig和$ sort:第一个参数采用类别的名称并仅显示该类别中的产品,第二个参数按likes,date,...过滤这些产品。
<a href="index.php?catig=computers">Computers</a>
<a href="index.php?catig=books">Books</a>
<a href="index.php?catig=software">Software</a>
<a href="index.php?sort=date">Date</a>
<a href="index.php?sort=likes">Likes</a>
<a href="index.php?sort=price">Price</a>
我的问题是,例如,当我在计算机中选择一个类别时,URL就是这样
index.php?catig =计算机
如果我想按价格对这些计算机进行排序,这就是URL的外观
index.php?sort =价格
它为我提供了按价格排序的所有产品,而不仅仅是计算机。我想如果我选择计算机,然后单击价格,我只想按价格对计算机进行排序。我希望网址看起来像这样
index.php?catig = computers&sort = price
所以任何人都可以告诉我如何在设置第一个参数时添加第二个参数。这是我正在使用的php代码:
if (isset($_GET['catig'])) {
$q = $_GET['catig'];
if (isset($_GET['sort'])) {
$s = $_GET['sort'];
$sqll = "SELECT * FROM services WHERE catigory= '$q' ORDER BY $s asc" ;
} else {
$sqll = "SELECT * FROM services WHERE catigory= '$q' ORDER BY id asc" ;
} else {
if (isset($_GET['sort'])) {
$s = $_GET['sort'];
$sqll = "SELECT * FROM services ORDER BY $s asc" ;
} else {
$sqll = "SELECT * FROM services ORDER BY id asc " ;
}
}
不知道您对代码有多少了解,但是下面的解决方案应该对您有用。包括下面的js:
<script>
function addParam(url, param, value) {
var a = document.createElement('a'), regex = /[?&]([^=]+)=([^&]*)/g;
var params = {}, match, str = []; a.href = url; value=value||"";
while (match = regex.exec(a.search))
if (param != match[1]) str.push(match[1] + "=" + match[2]);
str.push(encodeURIComponent(param) + "=" + encodeURIComponent(value));
a.search = (a.search.substring(0,1) == "?" ? "" : "?") + str.join("&");
// return a.href;
window.location.href = a.href;
}
</script>
然后,如下所示编辑排序标签的href值:
<a href="javascript:addParam(window.location.href, 'sort', 'date');">Date</a>
<a href="javascript:addParam(window.location.href, 'sort', 'likes');">Likes</a>
<a href="javascript:addParam(window.location.href, 'sort', 'price');">Price</a>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句