我正在尝试使用cakephp 2.3.7创建一个自动完成文件。 有大量的教程,但大多数都是蛋糕1.3左右。
我找到了一些像蛋糕2.X这样的(http://hitechcyberabad.blogspot.com.es/2013/02/autocomplete-in-cakephp-22x-using-jquery.html),但它们都不适合我。
我必须编辑教程的cities_dropdown.ctp代码:
<div class="contacts search form">
<fieldset>
<legend></legend>
<?php //paginator->options(array('url' => $this->passedArgs));
$this->Form->create('Contact', array('type'=>'post','action' => 'find'));
echo $this->Form->input('city', array(
'empty' => 'Pick a city',
'label' => 'City',
'option'=> $cities,
'id' => 'city',
'autocomplete' => 'on'));
echo $this->Form->end(__('Search'));
?>
</fieldset>
</div>
<script>
$( "#city" ).autocomplete({
source: "/cake/contacts/find",
minLength: 2,
delay: 2
});
</script>
其余代码与教程中的相同。
我没有收到任何错误消息,它根本不起作用,我不知道为什么。
答案 0 :(得分:3)
您是否调试了ajax调用的响应?使用chrome或Firebug for Firefox的调试工具来调试请求或使用http://www.charlesproxy.com/来执行此操作。
我很确定您的json响应不正确并且可能包含错误。您链接的教程也没有显示在CakePHP中处理json的最佳方法,请参阅本手册的this page。调试您的回复并用它更新您的问题。
答案 1 :(得分:2)
简单的自动填充代码
cities.ctp code
//Airport cities string section starts
$this->loadModel('AirportCity');
$cities=$this->AirportCity->find('list',array('fields'=>'AirportCity.city_name'));
$strCities='"'.implode('","',$cities).'"';
$this->set('cities',$strCities);
//Airport cities string section ends
控制器代码
var removeFromList = [AnyObject]()
func collectionView(collectionView: UICollectionView, shouldSelectItemAtIndexPath indexPath: NSIndexPath) -> Bool {
var cell = self.collectionView2.cellForItemAtIndexPath(indexPath)
if cell!.tag == 0 {
cell!.layer.borderWidth = 2.0
cell!.layer.borderColor = UIColor.blueColor().CGColor
removeFromList.append(objectIds[indexPath.row])
cell!.tag = 1
} else {
cell!.layer.borderWidth = 0.0
cell!.tag = 0
removeFromList.//WHAT CAN I PUT HERE?
}
return true
}
如需更多帮助,请参阅http://jqueryui.com/autocomplete/