在搜索标题搜索时从网址中删除过滤器

时间:2018-02-02 07:52:05

标签: php jquery search zend-framework zend-framework2

我正在开发一个由其他用户开发的项目,相信我的代码让我很难理解。用户想要的要求是产品页面上有一些过滤器工作正常,用户想要的是当用户选择一些过滤器时,网址看起来像这样

  

https://www.example.com/filter+1/filter+2

此后,当用户从主搜索栏搜索他想要从整个产品获得结果的任何内容时,就意味着。从主搜索栏搜索后的当前网址看起来像这样。

  

https://www.example.com/Year+3/General+Knowledge?term=History&sortby=relevance

我想从主搜索栏中搜索用户搜索时从网址中删除所有过滤器,这意味着我在搜索主搜索栏后看起来应该是这样的。

  

https://www.example.com?term=History&sortby=relevance

如前所述,之前编写代码的开发人员给了我很难理解他的逻辑,所以我想通过Jquery来做这件事,但这件事对我来说也不适用于我现在正在使用的jQuery代码。

<script>
$(document).ready(function(){
    $('#term-submit').click(function(){
        var term = $('#search-input').val();
        var getUrl = window.location;
        var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
        console.log(baseUrl);
        window.location.href = baseUrl + '?term=' + term + '&sortby=relevance';
    });
});

哦,顺便说一句我正在处理的应用程序是在Zend框架中。任何帮助都会很棒。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我自己解决了这个问题,这是我的心理问题:P我没有注意到添加preventDefault()来清理事情所以通过添加它来解决问题。现在,我的jquery看起来像这样。

<script>
$(document).ready(function(){
    $('#term-submit').click(function(e){
        e.preventDefault();
        var term = $('#search-input').val();
        var getUrl = window.location;
        var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
        window.location.href = baseUrl + '?term=' + term + '&sortby=relevance';
    });
});

希望将来会帮助某人。