假设我的网站上有一个搜索表单,它会生成一个查询字符串来过滤结果,例如。 mysite/search?field1=value1&field2=value2&field3=value3
用户在搜索字段中输入以下内容:
Field 1 = Cat
Field 2 = Black
Field 3 = Stray
鉴于查询字符串的性质,所有三个字段值都必须出现在被搜索的项目中,以便将其识别为匹配..对吗?
有没有办法制作'&'一个'OR',这样任何匹配的字段都会返回一个结果。
或者
有没有办法匹配最近的结果? IE浏览器。删除字符串对,直到找到匹配项,或以某种方式,找到下一个最接近的结果。
例如。如果用户输入“Cat”,“Black”和“Stray”并且有一个包含所有三个值的项目,则返回该结果(标准响应)。如果没有包含所有三个值的项目,假设只有一个项目具有“Cat”和“Stray”,它会识别出没有包含所有三个值的项目,所以它会查找两个字段值匹配?
很高兴考虑任何想法,以防止“找不到任何物品”,至少渲染一些东西而不是什么。
答案 0 :(得分:0)
这取决于您用于过滤的内容,但一般的想法是,在过滤数据后,检查它是否为空,如果是,则删除一个过滤器再次进行过滤。像这样的东西:
result = filter(data,filters);
while(!result || filters.length > 0){
filters.pop();
result = filter(data, filters);
}
不工作的代码,只是一般的想法。