大家好,基本上我想知道有没有一种方法可以将jQuery自动完成中的额外参数发送到php页面,然后该页面查询数据库并将结果发回。我知道如何将键入的术语发送到输入框中,但我想知道您是否可以从选择框中发送例如所选选项。
这是我的代码:
<script src="/scripts/jquery-ui-min"></script>
<script>
$('#tags').autocomplete({
search: function(event, ui) {
$('.test ul').empty();
},
source: '/autoCompleteKnowledgeBase.php'
}).data('autocomplete')._renderItem = function(ul, item) {
return $('<li/>')
.data('item.autocomplete', item)
.append(item.value)
.appendTo($('.test ul'));
};
</script>
<form method="POST" action="askAQuestion.php">
<p>
Search for:
<input type="text" id="tags" name="searchFor">
<input type="submit" id="tags" value="Find ...">
</p>
</form>
<div class="test">Output goes here:<br/><ul></ul></div>
</div>
autoCompleteKnowledgeBase.php接受该术语并对其进行数据库查询,然后将结果以JSON形式发回。正在寻找一种方法来传递附加参数,例如选定的选项。
有什么想法吗?
感谢
您可以这样实现:
var additionalDataToServer;
$('#tags').autocomplete({
search: function(event, ui) {
$('.test ul').empty();
},
source: function( request, response ) {
//set any additional data to the request here... for example
additionalDataToServer = $('#someInput').val();
request.additionalDataToServer = additionalDataToServer;
$.getJSON( '/autoCompleteKnowledgeBase.php', request, function( data, status, xhr ) {
response( data );
});
}
}).data('autocomplete')._renderItem = function(ul, item) {
return $('<li/>')
.data('item.autocomplete', item)
.append(item.value)
.appendTo($('.test ul'));
};
在服务器中,request.term
是由用户&request.additionalDataToServer
就是您添加的那个。