Сохраните пользовательское поисковое слово в MySQL

Я работаю над небольшим фрагментом, поиском в реальном времени с MySQL.

Теперь я думаю, что было бы неплохо сохранить / сохранить, какое ключевое слово пользователь выполнил поиск.

Пример:

Поиск пользователя на

Моя новая книга

Тогда я хочу сохранить это в моей базе данных.

Проблема с моим скриптом прямо сейчас, где я запускаю AJAX на Keyup. Тогда он будет хранить.

M My My 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);
                }
            });
        }
     });
});

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/ Попробуйте набрать что-нибудь в текстовом поле, он ждет 1000 мс, прежде чем выполнить код, в котором будет находиться ваш ajax.

Другие вопросы по тегам