jQuery自动完成输出所有结果而不是匹配字符串

时间:2013-06-28 07:03:37

标签: php json jquery jquery-autocomplete

我是JSON和jQuery的新手。我需要做一个jQuery自动完成,为此我把:

<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>


<script>
jQuery(document).ready(function($){
    $('#executives').autocomplete({source:'search_executives.php', minLength:2});
});
</script>

在HTML中:

<div class="rows">
    <div class="labels">Search</div>
    <div class="textboxs" style=" width: 175px;"><input id="executives" name="executive" /></div>
</div>

我的search_executives.php是:

<?php
session_start();
    if(empty($_SESSION['userid'])){
        header('Location:index.php');
        exit();
    }
include_once('include/config.php'); 

$qry = "SELECT employee_id,fname,mname,lname FROM personal_details WHERE deg_id = '1'";

$res = $dbo->executeQuery( $qry ) ;

//$results[] = array('label' => $row['name']);

for( $i = 0; $i < count( $res ); $i++ )
{
    $result[] = array( 'label' => $res[$i]['fname'].' '.$res[$i]['mname'].' '.$res[$i]['lname'] , 'value' => $res[$i]['employee_id'] ) ;
}

echo json_encode($result);
?>

现在我的问题是 -

  1. 它输出所有结果,它不依赖于我输入的搜索字符串。
  2. 它在HTML中的文本字段中打印value(例如3)。我需要用他的employee_id作为他的价值来打印高管的名字。
  3. 注意:第一部分已经解决。我忘记在LIKE中添加SQL条件了!

2 个答案:

答案 0 :(得分:1)

您必须将输入的值设置为label,然后在选择项目时使用另一个字段存储employee_id

select: function(e, ui) {
  e.preventDefault();
  this.value = ui.item.label;
  $('#other_field').val(ui.item.value);
}

Here's an example

答案 1 :(得分:0)

您正在使用输入文本框。

文本框的value属性显示在前端文本框中,您无法更改它。 (即)您的案例中的employee_id。