javascript - cakephp 2.4 中的自动完成实现

标签 javascript jquery mysql autocomplete cakephp-2.0

大家好,我对 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;
}

}

最佳答案

解决问题

the problem is my sutocomple is not firing or even not showing alert when key is pressed.

你需要在 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'
            ));

关于javascript - cakephp 2.4 中的自动完成实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44472469/

相关文章:

javascript - JavaScript 中延迟 'for loop'

javascript - 使用 jQuery 检测元素是否具有某种样式属性

javascript - 倒数计时器的问题

mysql - 将每日数据汇总到 MySQL 中的每月存储桶中

java - 配置 Wildfly 以对 MariaDB 使用 SSL 连接

javascript - xmlhttprequest 状态始终返回 0

javascript - 在叠加 div 上显示警告消息

jQuery 可排序链表在扩展时溢出到容器外?

mysql - 如何在MySQL中获取MAX(速度)的时间值?

javascript,遍历html树: iframe