Вы уверены, что катите Cake 1.3? Столько всего, что вы катаете, подходит для Cake 1.2 и устарела в 1.3, что я чувствую, что должен убедиться.
См .: http://book.cakephp.org/view/1358/AJAX
Исправь своих помощников. Javascript и Ajax устарели в 1.3. Кроме того, вам не хватает компонента RequestHandler, который необходим для обнаружения ответов ajax как в 1.2, так и в 1.3:
var $helpers = array('Html', 'Form', 'Js'=>array("Jquery"));
var $components = array('RequestHandler');
где Jquery может быть именем любой библиотеки, которую вы предпочитаете (хотя Jquery катится по умолчанию.)
Кроме того, в вашем default.ctp должна быть строка с эффектом <?= $scripts_for_layout ?>
в заголовке вашего макета. В конце разметки макета, перед закрывающим тегом body, должна быть строка с эффектом <? $this->Js->writeBuffer(); ?>
, чтобы очистить буферизованные сценарии.
Примечание: если вы катитесь 1,3, некоторые люди считают, что $this->Html->script
лучше, чем $html->script
. Я склонен согласиться.
Свертывание двух библиотек (scriptaculous и prototype? Вы уверены, что это необходимо?) Поставляется с собственным набором соображений и методов, обеспечивающих работу всех включенных библиотек в режиме совместимости. Для отладки рассмотрите возможность упростить это хотя бы до одной библиотеки, если jQuery просто не будет работать для вас. Опять же, jQuery катится по умолчанию. Вам нужно было бы правильно включить хелпер Js, как показано выше, за исключением вашей предпочтительной библиотеки, если вы хотите переопределить значение по умолчанию одной из других библиотек. Кроме того, для некоторых типов ответов требуется создать для них макет (например, чтобы избежать ошибок при отправке заголовка), например json, некоторый ajax и т. Д., Чтобы RequestHandler мог правильно их обслуживать.
Разберитесь со всем этим и обратитесь к Js Helper, Html Helper и Form Helper, чтобы настроить вашу функцию autoComplete (), и она должна работать нормально. Или вернитесь к 1.2 и используйте Javascript и Ajax для вашего сердца. : S
HTH:)