我正在尝试使用jquery ui自动完成小部件搜索我的用户表。
我的用户表中的两个字段,我想搜索:
TABLE `users`
`user_name` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
`user_email` varchar(64) COLLATE utf8_unicode_ci NOT NULL
视图
<script>
$(function() {
$( "#searchFriends" ).autocomplete({
source: "/friend/showFriends",
minLength: 1
});
});
</script>
<input type="search" id="searchFriends" placeholder="find friends"/>
控制器
/**
* Show friends
*/
public function showFriends()
{
$this->View->render('friend/index', array(
'privateFriends' => FriendModel::displayFriends(),
'searchFriends' => FriendModel::searchUsers()
));
}
模型
/**
* Search users table
*/
public static function searchUsers()
{
if(isset($_GET['term'])) {
$database = DatabaseFactory::getFactory()->getConnection();
$query = $database->prepare("SELECT * FROM users WHERE (user_name LIKE :term or user_email LIKE :term) ORDER BY user_id LIMIT 5");
$query->execute(array(':term' => '%'.$_GET['term'].'%'));
$friends = $query->fetchAll();
$friend_usernames = array();
foreach($friends as $friend) {
$friend_usernames[] = $friend->user_name;
$friend_usernames[] = $friend->user_email;
}
/* output results as json encoded array. */
echo json_encode($friend_usernames);
}
}
模型根据需要将用户名称为JSON。
但是,我不知道如何将这个JSON用户列表输入到输入字段。当我在输入字段中搜索用户时,如果我将JSON直接放入视图中,它就会按预期工作。
我没有使用任何类型的框架或cms。
我会很高兴得到任何帮助!