Livesearch 将用户searchword存储在mysql中

Livesearch 将用户searchword存储在mysql中,livesearch,Livesearch,我正在编写一个小片段,一个使用MySQL的实时搜索 现在,我认为存储/保存用户在哪个搜索词上进行搜索是件好事 例如: 用户搜索 我的新书 然后我想把它存储到我的数据库中 现在的问题是我的脚本,我在keyup上触发ajax。然后它就会储存起来 我是我的N我的Ne我的新。。。。等等 等等,我怎么能绕过这个,只存储孔线 $(function() { $("#searchword").keyup(function(){ var text = $(this).val();

我正在编写一个小片段,一个使用MySQL的实时搜索

现在,我认为存储/保存用户在哪个搜索词上进行搜索是件好事

例如:

用户搜索

我的新书

然后我想把它存储到我的数据库中

现在的问题是我的脚本,我在keyup上触发ajax。然后它就会储存起来

我是我的N我的Ne我的新。。。。等等

等等,我怎么能绕过这个,只存储孔线

$(function() {
    $("#searchword").keyup(function(){
        var text = $(this).val();
        if (text != ' ') {
            $('#result').html(" ");
            $.ajax({
                type: 'post',
                url: 'livesearch.php',
                data: { 'search': text },
                success: function(dataReturn) {
                    $('#result').html(dataReturn);
                }
            });
        }
     });
});

我创建了一个
storeText(txt,time)
函数,该函数将文本作为第一个参数,并将发送ajax之前的等待时间作为第二个参数。您可以根据需要更改第二个参数。在我的评论下面的函数中添加ajax调用,您就可以开始了

$(function() {
    $("#searchword").keyup(function(){
        var text = $(this).val();
        if (text != ' ') {

            //THIS IS WHERE YOU CAN MODIFY THE TIME
            storeText(text,1000);

            $('#result').html(" ");
            $.ajax({
                type: 'post',
                url: 'livesearch.php',
                data: { 'search': text },
                success: function(dataReturn) {
                    $('#result').html(dataReturn);
                }
            });
        }
     });
});

var timer;
function storeText(txt,time){
    clearTimeout(timer);
    timer = setTimeout(function(){

        //ADD YOUR SAVE QUERY AJAX HERE

    },time);
}
下面是一个JSFIDLE,可以看到它的实际作用:
尝试在文本框中键入任何内容,它会等待1000毫秒,然后才能执行ajax所在的代码。

我创建了一个
storeText(txt,time)
函数,该函数将文本作为第一个参数,将ajax作为第二个参数发送之前等待的时间。您可以根据需要更改第二个参数。在我的评论下面的函数中添加ajax调用,您就可以开始了

$(function() {
    $("#searchword").keyup(function(){
        var text = $(this).val();
        if (text != ' ') {

            //THIS IS WHERE YOU CAN MODIFY THE TIME
            storeText(text,1000);

            $('#result').html(" ");
            $.ajax({
                type: 'post',
                url: 'livesearch.php',
                data: { 'search': text },
                success: function(dataReturn) {
                    $('#result').html(dataReturn);
                }
            });
        }
     });
});

var timer;
function storeText(txt,time){
    clearTimeout(timer);
    timer = setTimeout(function(){

        //ADD YOUR SAVE QUERY AJAX HERE

    },time);
}
下面是一个JSFIDLE,可以看到它的实际作用:
尝试在文本框中键入任何内容,它会等待1000毫秒,然后在ajax所在的位置执行代码。

查看您正在使用的javascript代码会很有帮助。您可以使用setTimeout和clearTimeout实现,仅在用户停止键入几秒钟后保存数据。这样行吗?-我的意思是,如果用户搜索“我的新书”时什么也没有出现,那么用户就会离开我的主页。如果计时器是2秒,它会保存搜索词吗?@owaisafaq我已经添加了我的jquery:)我的答案有帮助吗?你好,我的朋友,我还没有完成脚本,但是是的,我想我会在将它存储到mysql之前添加一个计时器。如果能看到你正在使用的javascript代码,那会很有帮助。您可以使用setTimeout和clearTimeout实现,仅在用户停止键入几秒钟后保存数据。这样行吗?-我的意思是,如果用户搜索“我的新书”时什么也没有出现,那么用户就会离开我的主页。如果计时器是2秒,它会保存搜索词吗?@owaisafaq我已经添加了我的jquery:)我的答案有帮助吗?你好,我的朋友,我还没有完成脚本,但是是的,我想我会在将它存储到mysql之前添加一个计时器。。