使用Jquery地址对搜索结果进行url哈希处理

时间:2009-12-21 04:00:06

标签: jquery ajax

如果我希望浏览器“记住”使用ajax请求的搜索结果,该怎么办? 我正在使用jquery插件Jquery地址,但我不能拼凑如何做到这一点

这是我提交表单的代码片段:

var ajaxforms = {
    searchoptions : function(){
        $('form#searchoptions').ajaxForm({
            url : base_url + 'search/categorysearch',
            target : '#search_result',
            beforeSubmit : blocksearchdiv,
            success : revise_searchtable_onsuccess
        });
    },
    searchfilters : function(){
        $('form#searchfilters').ajaxForm({
            url : base_url + 'search/filter',
            target : '#search_result',
            beforeSubmit : blocksearchdiv,
            success : revise_searchtable_onsuccess
        });
    },
    searchterm : function(){
        $('form#termsearch').ajaxForm({
            url: base_url + 'search/termsearch',
            target : '#search_result',
            beforeSubmit : blocksearchdiv,
            success : revise_searchtable_onsuccess
        });
    }

这里是回调函数revise_searchtable_onsuccess:

function revise_searchtable_onsuccess()
{
    $(function(){
        $.tablesorter.defaults.sortList = [[0,1]];
        $('#tableresults').tablesorter();
    });
    $.address // don't know what comes next
    unblocksearchdiv();
}

请帮我实现jquery地址;或者你可能已经用其他插件实现了这个?

2 个答案:

答案 0 :(得分:1)

jQuery地址的文档可在jQuery Address - Docs获得。您可能对使用$('a').address()感兴趣,<a>用于更改{{1}}中使用的网址。

答案 1 :(得分:1)

我不是肯定这是你想要的,但是当页面(url)加载了哈希时,我是如何从哈希得到结果的。

注意,这是JS而不是JQ,但是从这里JQ起来都是你想要的。

您将不得不重新考虑您的哈希结构。使用.split()可以轻松解析多个值。

检查哈希

if(window.location.hash) {
    var hash =window.location.hash.substring(1);// ignores #
}

从那里,解析哈希变量以获取信息,然后查询数据库以获得与以前相同的结果。

所以somepage.php #search = string_term = blah可以在加载时分解为变量,然后变成查询