使用CakePHP 2.X自动完成字段

时间:2013-07-08 10:25:44

标签: php jquery cakephp autocomplete

我正在尝试使用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>

其余代码与教程中的相同。

我没有收到任何错误消息,它根本不起作用,我不知道为什么。

2 个答案:

答案 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/