所以我是AJAX的新手,所以我想知道是否有人可以提供帮助。
我想得到这个,SQL命令在onkeyup上激活:
SELECT * FROM commands WHERE tag=$_POST['search_input']
这是我目前的表格代码:
<form method="post">
<input class="search_input" type="text" name="search_input" placeholder="Search..." onkeyup="suggest()" autocomplete="off" />
</form>
当前的jQuery:
$(document).ready(function() {
$('.search_input').keypress(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
}
});
function handleKeyPress(e,form){
var key=e.keyCode || e.which;
if (key==13){
form.submit();
return false;
}
}
});
函数suggest()
就是我喜欢你的帮助。要在按键上发送上述命令。
答案 0 :(得分:0)
使用$.post()
。你有这里的例子http://api.jquery.com/jquery.post/
基本结构是
$.post(url(string), data(object), function(response){ /* do something */ });
输入之间的延迟非常好,因此不会不断向服务器发送请求。你可能还想使用keyup而不是keypress,测试它,你就会明白为什么。
答案 1 :(得分:0)
我建议使用......
HTML
<form method="post">
<input class="search_input" type="text" name="search_input" placeholder="Search..." autocomplete="off"/>
</form>
JS
// shorthand for document ready
$(function(){
var $input = $('.search_input');
// using on-function (see jQuery Docs)
// bind event instead of using on-attribute (nicer)
// bind input event instead of keyup, because it will fire on paste too
$input.on('input', function(evt){
$.ajax({
// maybe use GET?
type: 'POST',
url: '/yourQueryPath',
// assign the input value to the needed query parameter
data: {'search_string': $input.val()},
success: function(response){
// whatever you want to to with your response
}
)};
});
});
另外一个提示:永远不要像SQL那样使用未经过滤的用户输入(MySQL-Injection)! 例如。如果您使用PHP,请使用filter_input()和mysql_real_escape_string()或simliar。