在MVC中使用jquery ui autocomplete搜索数据库表

时间:2015-03-09 09:36:39

标签: jquery json jquery-ui pdo jquery-ui-autocomplete

我正在尝试使用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。

我会很高兴得到任何帮助!

0 个答案:

没有答案