搜索是我们经常做的一个功能,有的搜索需要处理很多的参数,例如:
商城中的商品可以根据商品分类、品牌、颜色、价格等等条件来搜索,这些搜索条件还有一个定的关系。
问题来了,我们怎么记录所有的搜索条件呢?
我们可以用cookie用session,但是个人觉得用这些方法都不好(曾经被这种记录参数的方式折磨过)。
我觉得用url传递参数最好处理,我们可以定义一个javascript函数专门来处理url中的参数,处理完参数以后再跳转到搜索页面。
页面中所有的搜索都可以调用这个函数,比较方便。
下面是javascript代码,大家可以参考一下:
//k参数名、v参数值、url地址
function search(k, v, url){
//判断是否传递url
if(url == undefined) url = window.location.href;
//判断是否有?
if(url.indexOf('?') == -1) url += '?';
//参数中无k
if(url.indexOf(k + '=') == -1){
//不是第一个参数
if(url.indexOf('=') != -1) url += '&';
url += k + '=' + v;
}else{
var urls = url.split(k + '=');
newUrl = urls[0] + k + '=';
newUrl += v;
//参数不是最后一个
if(urls[1].indexOf('=') != -1){
var start = urls[1].indexOf('&');
newUrl += urls[1].substring(start, urls[1].length);
}
url = newUrl;
}
window.location.href = url;
}
注:可能不能适用所有的情况,可以稍加修改,也为读者提供一种思路。