typeahead.js:如何使结果自动重定向到根据结果生成的URL?

时间:2014-08-30 12:46:40

标签: typeahead.js

我拥有什么

使用typeahead.js显示值数组的文本输入字段。这些来自查询MySql表的PHP脚本。

HTML / JS:

<div class="FORM col-sm-3">
                <div class="input-group">
                        <input type="text" data-provide="typeahead" class="form-control" id="formsearch" name="formsearch" autocomplete="off" placeholder="FORM">
                </div>
<script>
$.get('searchers/forms.php', function(data){
    $("#formsearch").typeahead({ source:data });
},'json');
</script>
        </div>

搜索/ forms.php:

<?php

include('../config/DBconnect.php');

$result = $con->query("SELECT id,name FROM forms LIMIT 0,10");
    while ($row = $result->fetch_object()){
                     $user_arr[] = $row->id;
                              $user_arr2[] = $row->name;
                          }
     $result->close();
     echo json_encode($user_arr2);
?>

上面的工作,从它给我一个MySql表中的选项下拉菜单。

我想要实现的目标

我希望结果是网址,在选择时重定向。

URL始终具有与数组中的值相关的模式。因此,如果一个列表是'hello',则URL将为'hello.php'

我对如何做到这一点有一些模糊的想法。

  1. 在mysql表中有一个URL列,尽管对于数百个条目可能会重复
  2. 获取PHP脚本以获取'name'值,将其转换为相关URL,然后将其输出到数组中。 Typeahead然后必须区分两个
  3. 在Javascript中执行类似的功能
  4. 我是游戏的新手并且在这里盲目飞行,所以我愿意接受有关如何解决这个问题的其他建议。我也不确定我需要搜索什么,所以如果有人在我之前这样做,我会道歉。

    感谢您的帮助

1 个答案:

答案 0 :(得分:0)

噢,男人的解决方案正在盯着我。

$.get('searchers/forms.php', function(data){
        $("#formsearch").typeahead({
    source:data,
            updater: function (selectedName) {  
            window.location.href =[ selectedName ]+".php";  
                }  
});
 },'json');

当你知道我的猜测时很容易。