我正在尝试为 CakePhp 2.x 中的文本框设置 Ajax 自动完成功能。
在我看来,我有:
<?php $this->start('script'); ?>
<script type="text/javascript">
$(document).ready(function () {
var options, a;
jQuery(function() {
options = {
serviceUrl: "<?php echo $this->Html->Url(array('Controller' => 'Logs', 'action' => 'autoComplete')); ?>",
minChars: 2,
};
a = $('#LogTimeSpent').autocomplete(options);
});
});
$('#saveCust').click(function () {
alert("Test")
});
</script>
<?php $this->end(); ?>
在我的控制器中,我有:
function autoComplete($query) {
if ($this->request->is('ajax'))
{
$suggestions = $this->Customer->find('all', array(
'conditions' => array(
'Customer.fullName LIKE' => '%'.$query.'%'
)
));
return json_encode(array('query' => $query, 'suggestions' => $suggestions));
}
}
如果影响查询,Customer.fullName 是一个虚拟字段。Firebug 目前给我一个 500 内部服务器错误。