gpt4 book ai didi

php - 自动完成问题

转载 作者:行者123 更新时间:2023-12-01 05:30:51 25 4
gpt4 key购买 nike

我正在尝试使用jquery自动完成功能在input字段中显示用户列表。我在向字段显示名称和选择更新值时遇到问题。

我的 PHP 代码:

    include '../_db.php';

// get what user typed in autocomplete input
$name = trim($_GET['name']);

$param = "%{$name}%";
$query = $conn->prepare('SELECT emp_number, emp_firstname, emp_lastname FROM `hs_hr_employee` WHERE emp_firstname LIKE ? OR emp_lastname LIKE ? ');
$query->bind_param('ss', $param,$param);
$query->execute();

$query->bind_result($emp_number,$emp_firstname,$emp_lastname);
$a_json = array();
$a_json_row = array();

while( $query->fetch() )
{
$a_json_row["emp_number"] = $emp_number;
$a_json_row["fname"] = $emp_firstname;
$a_json_row["lname"] = $emp_lastname;
array_push($a_json, $a_json_row);
}

$json = json_encode($a_json);
print $json;

$query->close();

我的JS代码

$(function()
{
$( "#search-emp" ).autocomplete(
{
source: function (request, response)
{
var form_data = {
ajax : '1',
name : $("#search-emp").val(),
actioncall : 'search-emp'
};

$.ajax({
type: "POST",
url: "_ajax.php",
data: form_data,
success: function(response)
{
$.each( response, function( key, value )
{
//alert( key + ": " + value );
console.log('element at index ' + key + ' is ' + JSON.parse(value));
});
//console.log(response);
},
dataType: 'json'
});
}
}, {minLength: 3 });
});

获取响应

[{"emp_number":1,"fname":"Arslan","lname":"Hassan"},{"emp_number":2,"fname":"Muneeb","lname":"Janjua" },{"emp_number":3,"fname":"hr","lname":"user"}]

我的 HTML 代码

<form class="form-inline">
<div class="form-group">
<label for="exampleInputName2">Employee Name: </label>
<input id="search-emp" type="text" class="form-control" placeholder="*">
</div>
<div class="form-group">
<label for="exampleInputEmail2">Date Range: </label>
<input type="text" class="form-control" id="dp-from" placeholder="From">
<input type="text" class="form-control" id="dp-to" placeholder="To">
</div>
<button type="submit" class="btn btn-primary">Genrate Report</button>
</form>

最佳答案

问题是因为 jQuery 自动完成想要有 2 个名为 labelvalue 的字段。 label 中的内容将显示在自动完成中。

因为您的服务器返回 key 的其他名称,您有 2 个选项:

  1. 更改服务器以返回如下 json:

    [{"emp_number":1,"fname":"Arslan","lname":"Hassan", "label":"Arslan Hassan", "value": "Arslan Hassan"},. ...]

  2. 或者在 ajax 成功回调时创建一个包含此字段(labelvalue)的数组,并将该数组传递给 response() 回调。

您可以在这里找到更多信息:http://api.jqueryui.com/autocomplete/#option-source

关于php - 自动完成问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37389812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com