将用户搜索词存储在 mysql 中

Store the user searchword in mysql

我正在制作一个小片段,使用 MySQL 进行实时搜索。

现在我认为 store/save 用户搜索的搜索词可能会更好。

示例:

用户搜索

我的新书

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

问题出在我的脚本上,我在键盘上触发了 ajax。然后它会存储。

M My My N My Ne My New .... and so on..

等等,我怎么能解决这个问题,只存储孔线..?

$(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);
}

这是一个 JSFiddle,可以看到它的实际效果:https://jsfiddle.net/3n2L2v6g/ 尝试在文本框中输入任何内容,它会等待 1000 毫秒,然后再执行 ajax 所在的代码。