清除搜索表单时返回原始状态

时间:2015-01-05 12:57:24

标签: php jquery mysql ajax

我有一个页面,显示一个填充了MySQL数据的HTML表格,上面有一个搜索输入字段 当我使用该搜索(keyup)时,将调用AJAX脚本,并使用搜索结果缩小表内容。到目前为止一切都很好。

只有当我清除搜索字段时,我才会再次显示原始 HTML表格。 我认为问题是GET变量的最后一个字符不能被退格/删除 示例:

.../search.php?search=word
.../search.php?search=wor
.../search.php?search=wo
.../search.php?search=w

因此,它不会返回原始表状态,而是不断显示包含' W'

的所有条目。

我的search.js:

$(document).ready(function() {
    $('#spelerzoeken').keyup(function() {
        var speler = $(this).val();

        if (speler !== '') {

            $.ajax({
                url: 'includes/search.php?search=' + speler,
                success: function(returnData) {
                    if (!returnData) {
                        $('.spelers').html('<span style="margin-top: 20px; margin-bottom: 20px; margin-left: 10px; display: block; width: 200px">Geen speler(s) gevonden.</span>');
                    } else {
                        $('.spelers').html(returnData);
                    }
                }
            });
        }
    });
})

2 个答案:

答案 0 :(得分:1)

好吧,既然你有这条线:

 if (speler !== '') {

它无法刷新原点。 因为如果您清除了所有输入(从&#39;到&#39;&#39;&#39;),条件就不会被填充,然后就不会刷新。

答案 1 :(得分:0)

那是因为你的动作监听器仅在值不为空时起作用。 您可以使用else语句显示原始搜索表。

    if (speler !== '') {

        $.ajax({
            url: 'includes/search.php?search=' + speler,
            success: function(returnData) {
                if (!returnData) {
                    $('.spelers').html('<span style="margin-top: 20px; margin-bottom: 20px; margin-left: 10px; display: block; width: 200px">Geen speler(s) gevonden.</span>');
                } else {
                    $('.spelers').html(returnData);
                }
            }
        });
    }
    else
    {
        $.ajax({
            url: 'includes/search.php?search=', //Here your AJAX request for the original table
            success: function(returnData) {
                if (!returnData) {
                    $('.spelers').html('<span style="margin-top: 20px; margin-bottom: 20px; margin-left: 10px; display: block; width: 200px">Geen speler(s) gevonden.</span>');
                } else {
                    $('.spelers').html(returnData);
                }
            }
        });
    }