Автозаполнение CakePhp2 (сворачивание jquery-ui) не работает без ajax, только с массивом доступных входов - PullRequest
0 голосов
/ 23 февраля 2012

Я использую cakephp2 .

Я хочу сделать автозаполнение в cakephp2 , но не с помощью ajax, это массив, где находятся доступные входы автозаполнения. У меня есть простой LocationsController (не важно, но я приложил его), где у меня есть:

class LocationsController extends AppController {

    public $name = 'Locations';

    public function index() {                
        $this->set('title_for_layout', 'Example - title');                 
    }
}

У меня есть представление / location / index.ctp , где у меня есть

<div id="big_input_normal" >                                
<form>
   <input type="text" id="the_big_one" class="big_input_selection" />
   </form>
</div>
<script>
    $(function() {
        var names = [ "Bratislava", "Praque", "Trstena" ];

        var accentMap = {
            "á": "a",
            "ö": "o",
            "é": "e"
        };
        var normalize = function( term ) {
            var ret = "";
            for ( var i = 0; i < term.length; i++ ) {
                ret += accentMap[ term.charAt(i) ] || term.charAt(i);
            }
            return ret;
        };

        $( "#the_big_one" ).autocomplete({
            source: function( request, response ) {
                var matcher = new RegExp( $.ui.autocomplete.escapeRegex( request.term ), "i" );
                response( $.grep( names, function( value ) {
                    value = value.label || value.value || value;
                    return matcher.test( value ) || matcher.test( normalize( value ) );
                }) );
            }
        });
    });
    </script>

Конечно, я включил в голову:

<script src="./app/webroot/js/jquery-1.7.1.js"></script>
<script src="./app/webroot/js/jquery.ui.core.js"></script>
<script src="./app/webroot/js/jquery.ui.widget.js"></script>
<script src="./app/webroot/js/jquery.ui.position.js"></script>
<script src="./app/webroot/js/jquery.ui.autocomplete.js"></script>

Подведем итог: Я использую CAKEPHP2 (это версия 2, а не 1.3), я хочу сделать автозаполнение с помощью jquery, я скачал jquery-ui и следовал за примерами сворачивания http://jqueryui.com/demos/autocomplete/ Я сделал это, взгляните на примеры кодов, но есть проблема, она не работает.

Javascript-скрипты после того, как страница для клиента отображается по умолчанию, заблокированы? Или в чем проблема? Пожалуйста, помогите мне, я схожу с ума с этой примитивной проблемой.

1 Ответ

0 голосов
/ 24 февраля 2012

Похоже, что все включения javascript неверны. Они должны ссылаться на файл js следующим образом:

<script src="/js/jquery-1.7.1.js"></script>

Чтобы заставить торт делать это автоматически, вы можете сделать:

<?php echo $this->Html->script('jquery-1.7.1.js'); ?>
...