使用cakephp中的AJAX连接多个字段以在自动完成中显示

时间:2011-10-09 05:49:03

标签: ajax cakephp jquery

目前我的自动完成工作在显示用户的第一个名称,但我想连接名字,姓氏等。如何在以下代码中实现此目的?

<script type="text/javascript">
    $(function() {
        $(".suggest").autocomplete({
            source: function( request, response ) {
                $.ajax({
                    url: '<?php echo $this->Html->url(array('controller' => 'searches', 'action' => 'suggestUser')); ?>',
                    dataType: "json",
                    data: {
                        //request.term is the value of the current textbox.
                        term: request.term
                    },
                    success: function( data ) {
                        response( $.map( data, function( item ) {
                            return {
                                label: item.User.firstName,
                                value: item.User.firstName

                            }
                        }));
                    }
                });
            },
            minLength : 1
        });
    });

在我的控制器中,以下代码是我搜索该字段的逻辑。

function suggestUser() {

        if (isset($_GET["term"])) {
            $term = $_GET["term"];

            $result = $this->User->find('all', array(
                'conditions' => array(
                    'User.firstName LIKE' => $term . '%'
                ),
                'fields' => array(
                    'firstName'
                )
                    ));
            if ($term) {
                $this->set('results', $result);
                $this->view = 'Json';
                $this->set('json', 'results');
            }
        }
    }

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我意识到这很简单。我设法解决了它。

  label: item.User.firstName + " " + item.User.lastName,
  value: item.User.firstName + " " + item.User.lastName

您还需要在。

中附加lastName字段
'fields' => array(
                    'firstName',
                    'lastName',
                )