【问题标题】:Store the user searchword in mysql将用户搜索词存储在mysql中
【发布时间】:2017-04-03 00:43:31
【问题描述】:

我正在做一个小 sn-p,一个使用 MySQL 的实时搜索。

现在我认为存储/保存用户在哪个搜索词上进行搜索可能会很好。

例子:

用户搜索

我的新书

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

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

M My My N My Ne My New .... 等等..

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

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

【问题讨论】:

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

标签: livesearch


【解决方案1】:

我创建了一个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/ 尝试在文本框中输入任何内容,它会在执行 ajax 所在的代码之前等待 1000 毫秒。

【讨论】:

    猜你喜欢
    • 2017-01-25
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多