我下面有一个小代码片段。我正在使用jQueryUI的自动完成功能从我的mySql数据库中提取数据,并在有人搜索特定用户时将用户名填充到搜索栏中。我希望它能够自动填充被搜索人员的名字和姓氏。例如,如果自动完成功能预测某人正在寻找勒布朗詹姆斯,我希望它返回名字和姓氏。目前,我只能让它返回名字。从查看文档,我想我可以通过一个接一个地添加它们来添加多个键和值对。这只为我生一个名字。我在第二个标签/值对名称之后添加了一个“2”,看看给它们不同的名称会有所帮助。它仍然只返回名字而不是姓氏。如何让它返回自动填充中的名字和姓氏?
我的index.php
<?php
// here we set the database information
$SERVER = 'localhost';
$USER = 'user';
$PASS = 'password';
$DATABASE = 'database';
// we are instantiating the mysqli database object
$db = new mysqli($SERVER, $USER, $PASS, $DATABASE);
// error check
if($db->connect_errno > 0){
// report an error
die('Unable to connect to database [' . $db->connect_error . ']');
}
$sql = 'SELECT * FROM users WHERE user LIKE "' . $_REQUEST['term'] . '%"';
$result = $db->query($sql);
$data = array();
while ($row = $result->fetch_assoc())
{
$data[] = array(
'label' => $row['firstName'] ,
'value' => $row['lastName'],
'label2' => $row['lastName'],
'value2' => $row['lastName'],
);
}
// jQuery wants JSON data
echo json_encode($data);
flush();
我的html和js
<form id="searchbox" action="">
<input id="search" type="text" placeholder="Search">
<!--<input id="submit" type="submit" value="Search">-->
</form>
<script type="text/javascript" >
//script for autocompleting usernames when being search
$('#search').autocomplete(
{source:'autosuggest.php',
minLength:2
});
</script>
答案 0 :(得分:1)
直接从API documents:
支持多种类型:数组:数组可用于本地数据。 有两种支持的格式:字符串数组:[&#34; Choice1&#34;, &#34;选择2&#34; ]具有标签和值属性的对象数组:[{ label:&#34; Choice1&#34;,value:&#34; value1&#34; },...]
他们希望您提供这样的信息:
[
{'label': 'label', 'value': 'value'},
{'label': 'label', 'value': 'value'},
{'label': 'label', 'value': 'value'}
....etc
]
你正在提供它:
[
{'label': 'label', 'value': 'value', 'label1': 'label1', 'value1': 'value1'}
....etc
]
我自己还没有使用jQuery UI的这一部分,所以我无法对此发表评论,但是我可以建议您解析全名:firstname_lastname
然后label
然后可能利用split()
来显示全名。
或者,你可以通过你的php文件传递标签:
while ($row = $result->fetch_assoc())
{
$data[] = array(
'label' => $row['firstName'] . ' '. $row['lastName'],
'value' => $row['firstName'] . ' '. $row['lastName'],
);
}