CakePHP和jQuery自动完成

时间:2012-04-22 18:26:52

标签: cakephp

我正在使用CakePHP。我的应用程序需要的是自我提示。我使用以下代码来实现我的目标:

jQuery("#name").autocomplete( '<?php echo HTTP_PATH.'songs/sss'; ?>', {
    multiple: true,
    mustMatch: true,        
    matchContains: true,
    autoFill: false,
});

将我的请求发送到SongsController'sss函数...我的控制器功能是:

public function sss(){
    $this->layout = '';
    $condition = '';
    $condition = array('Poet.status'=>'3');
    $poet_name = $this->Poet->find('list', array('conditions' => $condition));
    return $poet_name;
}

第一个问题是我在数组中返回结果。我如何在建议清单中再次分离我的结果。

第二件事是,当我尝试使用Firebug面板检查响应时,我注意到CakePHP在这一点上期待一个视图。我不想要任何观点,因为我没有更新任何东西......

1 个答案:

答案 0 :(得分:0)

您想要查看将数据序列化为JSON:http://book.cakephp.org/2.0/en/views/json-and-xml-views.html#using-data-views-with-the-serialize-key。通过在视图中设置_serialize变量,您可以告诉Cake在获取数据视图请求时哪些数据很重要。

您还需要在jQuery调用中将Router::parseExtensions('json');.json添加到URI的末尾,以便Cake知道使用JSON数据视图进行响应并使用{{中的数据1}}你设置的键就像我上面提到的那样。这里有关于文件扩展名的更多信息:http://book.cakephp.org/2.0/en/development/routing.html#file-extensions

以下是我将如何编写方法:

_serialize