Hello Guys我是cakephp的新手,我想在我的项目中实现自动完成功能。我已经下载了两个javascript文件jquery.autocomplete.js和jquery.autocomplete.min.js并将它们放在我的webroot目录中。我的数据库中有一个名为city的字段,我必须自动完成。问题是当按下按键时,我的sutocomple没有触发甚至没有显示警告。
我的javascript代码是
<script src="../../webroot/js/jquery.autocomplete.js"
type="text/javascript"></script>
<script src="../../webroot/js/jquery.autocomplete.min.js"
type="text/javascript"></script>
$(function() {
$('#Usercity').autocomplete({
alert("ashish");
//dataType: "json"
minLength: 1,
source: function( request, response ) {
$.ajax({
url: "/User/autoComplete",
dataType: "jsonp",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
term: request.term
},
success: function( data ) {
response( $.map( data, function( el ) {
return { label: el.id, value: el.city }
}));
}
});
}
});
});
</script>
echo $this->Form-
>input('city',array('type'=>'text','label'=>'City'));
Controller code
public function autoComplete() {
Configure::write('debug', 0);
$this->layout = 'ajax';
$query = $_GET['term'];
$items = $this->User->find('all', array(
'conditions' => array('User.city LIKE' => $query . '%'),
'fields' => array('city')));
foreach ($items as $item) {
$data[] = $item['Item'];
}
$data = json_encode($data);
echo $data;
exit;
}
}
答案 0 :(得分:0)
解决问题
问题是我的sutocomple没有开火甚至没有显示警报 当按下键时。
你需要在autocomplete.js之前加载jQuery lib,比如
<script src="../js/jquery-last.version.number.js"></script>
或者如果你想让cakephp为你做(不需要写'.js')
echo $this->Html->script(array(
'jquery-1.10.2.min',
'jquery.autocomplete'
));