任何人都可以建议自动完成搜索


Anyone can suggest autocomplete search

我是个新手,我正在寻找一种方法,让搜索框像谷歌一样自动完成。

我已经搜索过了,我找到的最好的前景似乎是这个论坛帖子。建议使用它的人说,他在谷歌代码上的这个项目中使用了它,这个项目已经过时了,因为我在最后一次尝试计算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"});
相关文章: