我正在使用 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/