【问题标题】:Remove query string pairs until a result is returned删除查询字符串对,直到返回结果
【发布时间】:2016-12-08 08:50:06
【问题描述】:

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

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

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

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

有没有办法让'&'变成'OR',这样任何匹配的字段都会返回结果。

或者

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

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

很高兴考虑任何防止“找不到项目”的想法,并且至少渲染一些东西而不是什么都没有。

【问题讨论】:

    标签: html query-string search-form


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢 Gray,我会用类似的东西玩一玩,看看我能想出什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    相关资源
    最近更新 更多