Laravel 如何像 appends 那样保留 url 的请求参数
用laravel做分页的时候,发现appends可以保证page参数不丢失
像这样就能在点击分类链接后,再点下一页的时候page参数不丢失.
然后我就遇到了以下的问题:
譬如我有3个以上的层级筛选链接,我通过点击连接后传递参数到后端,然后后端返回数据,我要如何保留他们的各个层级的参数,我想用appends方法的,但是a链接的href好像用不了,只能用在分页上,然后我就用js拼接参数实现了保留请求参数。
//获取url问号后面的参数
function getQueryVariable(variable){
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){
return pair[1];
}
}
}
var a=document.getElementsByClassName("type")[0].getElementsByTagName("a");
//第一层级
var type=getQueryVariable("type");
var state=getQueryVariable("state");
var sort=getQueryVariable("sort");
for(var i=0;i<a.length;i++){
var b=a[i].innerHTML;
//判断参数是否存在
if(sort && state){
a[i].href="/Comic?type="+b+"&sort="+sort+"&state="+state;
}else if(state){
a[i].href="/Comic?type="+b+"&state="+state;
}else if(sort){
a[i].href="/Comic?type="+b+"&sort="+sort;
}
else{
a[i].href="/Comic?type="+b;
}
}
var a1=document.getElementsByClassName("state")[0].getElementsByTagName("a");
//第二层级
for(var i=0;i<a1.length;i++){
var b=a1[i].innerHTML;
if(sort && type){
a1[i].href="/Comic?type="+type+"&state="+b+"&sort="+sort;
}else if(type){
a1[i].href="/Comic?type="+type+"&state="+b;
}else if(sort){
a1[i].href="/Comic?state="+b+"&sort="+sort;
}
else{
a1[i].href="/Comic?state="+b;
}
}
var a2=document.getElementsByClassName("sort")[0].getElementsByTagName("a");
//第三层级
for(var i=0;i<a2.length;i++){
b=a2[i].getAttribute("value");
if(type && state){
a2[i].href="/Comic?type="+type+"&state="+state+"&sort="+b;
}else if(type){
a2[i].href="/Comic?type="+type+"&sort="+b;
}else if(state){
a2[i].href="/Comic?state="+state+"&sort="+b;
}
else{
a2[i].href="/Comic?sort="+b;
}
}
但是我发现如果筛选的层级链接有3个以上时,代码会变得很繁重复杂,所以想问下有没有简便一点的,像appends那样的方法解决这个问题
推荐文章: