我正在使用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在这一点上期待一个视图。我不想要任何观点,因为我没有更新任何东西......
答案 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