Сохраните пользовательское поисковое слово в 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.