删除查询字符串对,直到返回结果

时间:2016-12-08 08:50:06

标签: html query-string search-form

假设我的网站上有一个搜索表单,它会生成一个查询字符串来过滤结果,例如。 mysite/search?field1=value1&field2=value2&field3=value3

用户在搜索字段中输入以下内容:

Field 1 = Cat
Field 2 = Black
Field 3 = Stray

鉴于查询字符串的性质,所有三个字段值都必须出现在被搜索的项目中,以便将其识别为匹配..对吗?

有没有办法制作'&'一个'OR',这样任何匹配的字段都会返回一个结果。

或者

有没有办法匹配最近的结果? IE浏览器。删除字符串对,直到找到匹配项,或以某种方式,找到下一个最接近的结果。

例如。如果用户输入“Cat”,“Black”和“Stray”并且有一个包含所有三个值的项目,则返回该结果(标准响应)。如果没有包含所有三个值的项目,假设只有一个项目具有“Cat”和“Stray”,它会识别出没有包含所有三个值的项目,所以它会查找两个字段值匹配?

很高兴考虑任何想法,以防止“找不到任何物品”,至少渲染一些东西而不是什么。

1 个答案:

答案 0 :(得分:0)

这取决于您用于过滤的内容,但一般的想法是,在过滤数据后,检查它是否为空,如果是,则删除一个过滤器再次进行过滤。像这样的东西:

result = filter(data,filters);
while(!result || filters.length > 0){
  filters.pop();
  result = filter(data, filters);
}

不工作的代码,只是一般的想法。