【发布时间】:2012-10-09 17:52:12
【问题描述】:
希望能找到答案。
我用 PHP 构建了一个网络应用程序,其中有一个记录列表和一些搜索字段。 搜索字段之一是“客户编号”。 客户编号保存在本地数据库 (MySQL) 中。如果我搜索客户编号,它会为我提供数据库的相应结果行 => 逻辑。
现在我想用 jQuery UI 自动完成为这个搜索字段构建一个扩展。
我想做的事:
我希望用户能够在搜索字段“customernumber”中搜索 customerNAME,并且自动完成功能会在值中提供正确的 customernumber。
客户名称也与客户编号一起保存在外部 ODBC 数据库中。
我已经做了什么:
我已尝试从外部 ODBC 数据库中获取所有名称和号码,但我得到了如下列表:
customername: somename1
customernumber: number1
customername: somename2
customernumber: number2
customername: somename3
customernumber: number3
... and so on
如果我在这个列表中也使用 ajax 调用来自动完成,它根本不起作用。
有人可以帮帮我吗!?经过几个小时的搜索,我在互联网上或任何类似的东西上都找不到答案。
我会很高兴的! 谢谢!
到目前为止我得到的示例:
jQuery 脚本:
<script
$(function() {
function log( message ) {
$( "<div/>" ).text( message ).prependTo( "#log" );
$( "#log" ).scrollTop( 0 );
}
$( "#customer" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "customers.php",
dataType: "json",
success: function( data ) {
response( function( item ) {
return {
label: item.customername,
value: item.customernumber
}
});
}
});
},
minLength: 3,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.value);
}
});
});
</script>
输入 HTML:
<div class="ui-widget">
<label for="customer">Search</label>
<input id="customer" />
</div>
customers.php 中的 SQL 查询
$connection = odbc_connect('host', 'username', 'password')
or die('Connection failed!');
$sql = "SELECT 'customername', 'customernumber' FROM 'database.table'";
$results = odbc_exec($connection, $sql);
while($myRow = odbc_fetch_array($results)){
$rows[] = $myRow;
};
foreach($rows as $row) {
foreach($row as $key => $value) {
echo $key . ': '. $value . '<br/>';
}
};
要明确
我在搜索框中输入 customerNAME, 我想检索 customerNUMBER 作为值。
【问题讨论】:
-
请向我们展示一个服务器响应示例,以便我提供更具体的解决方案。
-
发布示例,见上
-
为我的答案添加了 cmets 和适当的解决方案。