我正在处理一个小片段,使用 MySQL 进行实时搜索。
现在我认为存储/保存用户进行搜索的搜索词可能会很好。
例:
用户搜索
我的新书
然后我想将其存储到我的数据库中。
问题出在我的脚本上,我在 keyup 上触发了 ajax。然后它将存储。
M 我的我的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);
}
下面是一个JSFiddle,可以看到它的实际效果:https://jsfiddle.net/3n2L2v6g/尝试在文本框中键入任何内容,它会等待 1000 毫秒,然后再执行 ajax 所在的代码。