twitter-bootstrap - Bootstrap-3-Typeahead afterSelect 获取 ID

标签 twitter-bootstrap bootstrap-typeahead

我正在使用 Bootstrap-3-Typeahead here用于我的 mysql 自动完成功能。
我需要从选定的 item_name afterSelect 中获取 item_code,例如

$('#item_code').val(this.item_code);

不幸的是没有工作。

我的 Json 输出:

[{"item_code":"1","item_name":"A"},{"item_code":"2","item_name":"B"}]

这是我的代码,请指教
$('input.item_name').typeahead({
                minLength: 3,
                source: function (query, process) {
                    $.ajax({
                        url: 'function/load-item.php',
                        type: 'POST',
                        dataType: 'JSON',
                        data: 'query=' + query,
                        success: function(data) {
                            var newData = [];
                            $.each(data, function(){
                                newData.push(this.item_name);
                                });
                            return process(newData);
                            }
                    });
                },
                afterSelect: function(){
                    $('#item_code').val( ... ... ... ... );
                }
            });

我的php代码
<?php
session_start();
include ('../include/connect.php');

$query = 'SELECT item_code,item_name FROM master_item';
if(isset($_POST['query'])){
$query .= ' WHERE item_name LIKE "%'.$_POST['query'].'%"';
}

$return = array();
if($result = $conn->query($query)){
    // fetch array
    while ($row=mysqli_fetch_assoc($result))
    {
        $return[] = $row;
    }

    // free result set
    $result->close();
    // close connection
    $conn->close();

    $json = json_encode($return);
    print_r($json);
}

?>

最佳答案

这是为了那些在不久的将来可能遇到同样问题的人的利益。
下面是获得相同功能的另一种简单方法 使用 JQuery 和 bootstrap-3-typeahead.js or bootstrap-3-typeahead.min.js :

例子

var url = "codePath/searchCode.php";
$('.typeahead').typeahead({
    source: function (query, process) {
      return $.get(url, { query: query }, function (data) {
        console.log(data)
	    return process(data);
	  });
    },
    //this triggers after a value has been selected on the control
    afterSelect: function (data) {
      //print the id to developer tool's console
      console.log(data.id);
    }
});

关于twitter-bootstrap - Bootstrap-3-Typeahead afterSelect 获取 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35402487/

相关文章:

带有预先输入和分层项目的 Javascript 组合框

php - 将弹出窗口 'email has been sent' 更改为 Bootstrap 'contextual background'?

css - 当我在 IE 中单击 svg 文本时,它消失了

html - 如何将缩略图照片添加到 ruby​​ on rails 中的页眉?

javascript - angular.js ui + bootstrap typeahead + 异步调用

jquery - Bootstrap 3.0 RC1 的预输入问题

javascript - 输入更改后立即运行函数

html - 如何使用 Bootstrap 将矩形图像与垂直图片并排对齐?

html - Bootstrap 输入组文本框+输入组插件不对齐

css - AngularJS:可滚动的提前输入字段