我正在使用 Bootstrap 的“typeahead”插件。
我像这样用ajax加载数据:
$.ajax({
type: "POST",
url: "/library/autocomplete",
dataType: 'json',
success: function(data) {
$('#autocomplete').typeahead({source: data})
},
error: function(data){
console.log( "Data is: " + data);
},
onComplete: function(){
}
});
自动完成动作:
public function autocompleteAction()
{
// disable view and layout
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$values = array();
$usernames = UserQuery::create()->find();
$usernames = $usernames->toArray();
$organizations = OrganizationQuery::create()->find();
$organizations = $organizations->toArray();
foreach($organizations as $organization){
array_push($values, $organization["Name"]);
}
foreach($usernames as $username){
array_push($values, $username["Username"]);
}
echo $this->_helper->json($values);
exit;
}
如您所见,我从数据库中加载了用户名和组织,因此您可以同时添加它们。
现在,当我在文本框中输入时,我会看到来自组织和用户名的提示。有没有办法添加标题并在“组织标题”下显示组织和在“用户名标题”下显示用户名。
用于澄清的图像: