我是个新手,我正在寻找一种方法,让搜索框像谷歌一样自动完成。
我已经搜索过了,我找到的最好的前景似乎是这个论坛帖子。建议使用它的人说,他在谷歌代码上的这个项目中使用了它,这个项目已经过时了,因为我在最后一次尝试计算cakepp时成功地安装了可搜索的。
问题是,我以前很少使用javascript,我有点困惑我到底应该做什么。带有自动完成代码的文档没有涉及到我能理解的任何细节。
如果我们假设我成功地正确安装了可搜索的行为,有什么好心人能向我解释我将如何使自动完成工作吗?
上面写着只使用:
$("selector").autocomplete(url [, options]);
例如:
$("#input_box").autocomplete("autocomplete_ajax.cfm");
自动完成要求存在id为"input_box"的输入元素。当用户开始在输入框中键入时,自动完成器将使用名为q的GET参数请求autocomplete_ajax.cfm
这是我不明白的。我该把它放在哪里?一旦我把它放在某个地方,我是否只需要把我的一个输入命名为"input_box"?
提前谢谢。
方法1
当您有预定的搜索选项集列表时,请使用此选项
jQuery代码:
$(function() {
var availableTags = [ //array of searchable options
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
HTML代码:
<label for="tags">Tags: </label>
<input id="tags">
来源:http://jqueryui.com/autocomplete/
方法2
在数据库中搜索自动完成建议时使用此选项
jQuery代码:
$('input#input_box').keypress(function(){ //letter has been pressed
var search = $(this).val();
$.ajax({
url : 'autocomplete_ajax.php', //the php page that will handle the request
type : 'GET', //the method of sending the data
data: 'q='+search, //the data you are sending
success : function(data){
//the variable 'data' will be whatever the php outputs (via
//any method - echo, exit, print, print_r etc. you can
//use data from php page to output wherever you want, e.g.
$('div#search_autosuggestbox').html(data);
}
});
});
HTML:
<input id="input_box" />
<div id="search_autosuggestbox"></div>
编辑:添加与问题相对应的页面名称/值
您可以尝试这样设置源代码:
$("#input_box").autocomplete({source: "autocomplete_ajax.cfm"});