CakePHP — v1.3xx — использование прототипа и jquery, но прототип запускает события jquery?

#jquery #ajax #cakephp #prototypejs

#jquery #ajax #cakephp #prototypejs

Вопрос:

Возможно, я здесь чего-то сильно не хватает, но это просто не складывается.

Я создал ajax-форму, которая отлично работает с ProtoType.

Я перехожу на Jquery, и поэтому я добавил библиотеки jquery и т.д..

Ниже моя $ajax отправка.. ОБРАТИТЕ ВНИМАНИЕ на параметры загрузки и успешного выполнения, закодированные в jQuery ..

Чего я не могу понять, ТАК это ПОЧЕМУ, ПОЧЕМУ это работает отлично, но ТОЛЬКО если я включаю библиотеки ProtoType и Scriptulaous???? Для меня это абсолютно бессмысленно, потому что я вызываю свой загрузчик с помощью jQuery .show() .. Почему прототип должен как-то влиять на это??

Раздел отправки моей формы

 echo $ajax->submit('Submit', array('url' => array('controller' => 'plans', 'action' =>    'search_action_ajax'),
'update' => 'ajax_search_div',
'label' => 'Get Quotes >>',
'id' => 'submitButton',
'loading' => '$j("#busy-indicator").show()',
'success' => '$j("#busy-indicator").hide()',
));
  

Я просто хочу полностью отключить ProtoType..

Мой помощник контроллера выглядит следующим образом:

 var $helpers = array('Js' => array('Jquery'), 'Ajax', 'Html', 'Form', 'Session');
  

Как вы можете видеть, я вызываю в jQuery.

Мои библиотеки в моем default.ctp

 echo $this->Html->script('jquery-1.6.1.min', array('inline' => 'false'));
echo $this->Html->script('jquery-ui-1.8.13.custom.min', array('inline' => 'false'));
  

Дополнительное примечание:

Я также протестировал приведенный ниже скрипт, чтобы убедиться, что jQuery действительно обрабатывается:

 ...'loading' => '$j("#busy-indicator").fadeIn("slow")',...
  

Комментарии:

1. ОК. После повторного прочтения этого раздела руководства я вижу, что для поддержки ajax в CakePHP требуются prototype и scriptaculous. Это довольно разочаровывает, видя, что я получаю ошибки памяти прототипа в IE8!

Ответ №1:

AJAX-Helper устарел, вам больше не следует его использовать.

Кроме того, вам не нужно указывать, что вы хотите использовать jQuery, поскольку это библиотека по умолчанию, которая будет загружена CakePHP, как вы можете прочитать здесь. Это не значит, что он также включается! Только помощник будет готов к его использованию.

Вы все еще можете использовать AJAX, но вам нужно переписать свои представления. Вы можете получить информацию о том, как это сделать, на странице руководства по использованию Js-Engine.

Я бы также рекомендовал вам прочитать всю страницу руководства по Js-Helper.

Комментарии:

1. Тим, я воздержался от включения всей моей истории, но, основываясь на руководстве, я не смог использовать НИ ОДНУ из функций JS, как описано там. Я все еще думаю, что эта область находится в стадии интенсивной разработки.