在搜索 header 搜索时从 url 中删除过滤器

Removing filters from url when header search is searched

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

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

现在,当用户从主搜索栏中搜索他想要从整个产品中获得结果的任何内容时。从主搜索栏搜索后的当前 url 看起来像这样。

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

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

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 框架中。任何帮助都会很棒。提前谢谢你。

我自己解决了它,这是我的注意力问题 :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';
    });
});

希望对以后的人有所帮助。