Ajax-清空搜索字段后在div中重新加载上一个数据

时间:2018-08-15 16:47:14

标签: javascript php jquery html ajax

我有一个小的df = df.groupby(['key1', 'key2']).size().unstack() 脚本,通过它我可以搜索和加载结果而无需重新加载或重定向页面:

ajax

它可以工作,但是有问题。在$(document).ready(function(){ $('#db-search').keyup(function(){ var txt = $(this).val(); if(txt != ''){ $('#db-search-results').html(''); $.ajax({ url: 'search.php', method: 'post', data:{search:txt}, dataType: 'text', success:function(data){ $('#db-search-results').html(data); } }); } else{ //reload previus data } }); }); 字段中输入任何内容之前,我已经在#db-search内部显示了来自数据库的所有结果。现在,当我正在搜索某些内容时,所有以前的数据都将被这些新结果替换,但是如果我清除搜索字段,我的结果就消失了(没关系),但是我的先前数据没有回来。

清除该搜索字段后,是否可以保留以前的数据?

PS:当前,我只是在执行#db-search-results查询,然后使用SELECT *加载它,但这是一个额外的查询,我宁愿搜索另一种方法:D < / p>

2 个答案:

答案 0 :(得分:2)

您可以在页面加载后将其存储在变量中,并在需要时显示它:

$(document).ready(function(){
    var default_data = $('#db-search-results').html();

    $('#db-search').keyup(function(){
        var txt = $(this).val();

        if(txt != ''){
            $('#db-search-results').html('');
            $.ajax({
                url: 'search.php',
                method: 'post',
                data:{search:txt},
                dataType: 'text',
                success:function(data){
                    $('#db-search-results').html(data);
                }
            });
        } else{
            $('#db-search-results').html(default_data);
        }
    });
});

答案 1 :(得分:0)

我希望这对您有帮助

$(document).ready(function(){

var previousData=''; 

$('#db-search').keyup(function(){

    var txt = $(this).val();

    if(txt != ''){
        $('#db-search-results').html('');
        $.ajax({
            url: 'search.php',
            method: 'post',
            data:{search:txt},
            dataType: 'text',
            success:function(data){
                previousData=data;
                $('#db-search-results').html(data);

            }
        });
    } else{
        //reload previus data
         $('#db-search-results').html(previousData);
    }

});

});