jQuery自动完成返回数据 - 显示ID和标签

时间:2013-06-18 13:40:23

标签: php jquery-ui-autocomplete

我正在使用Codeigniter为用户名创建自动填充:

使用参数:search-user?term = s我得到以下数据作为Json:

{"id":"1","value":"Stuart Blackett"}{"id":"2","value":"Simon Wilton"}

enter image description here

然而,当我运行自动选择时,在搜索说“St”时,它会在选项中按名称返回,但也会在ID中返回。

如何防止这种情况发生?我怀疑我的循环可能是问题。

我的PHP函数如下:

function search_user()
    {
            $term = $this->input->get('term');

            $user_search = $this->vendor_model->search_user($term);

            $user['response'] = 'false';

            if(count($user_search) > 0)
            {
                $user['response'] = 'true';
                $user = array();
                foreach($user_search as $user)
                {
                    $user = array(
                        'id'        => $user->user_id,
                        'value' => $user->user_firstname .' '. $user->user_surname
                    );

                    echo json_encode($user);
                }
            }
    }

1 个答案:

答案 0 :(得分:1)

{"id":"1","value":"Stuart Blackett"}{"id":"2","value":"Simon Wilton"}无效JSON。

尽量不要单独回显每个$user的信息 - 而是构建一个新的usersjson_encode()数组。例如:

foreach($user_search as $user) {
    $users[] = array(
        'id'    => $user->user_id,
        'value' => $user->user_firstname .' '. $user->user_surname
    );
}

echo json_encode($users);