Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Ajax autoComplete не работает

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
uran26

цитировать



Зарегистрирован: 02 Апр 2009 12:13:49
Сообщения: 31
Откуда: Кировоград

СообщениеДобавлено: 02 Апр 2009 13:01:20    Заголовок сообщения: Ajax autoComplete не работает Ответить с цитатой

Привет.
Версия CakePHP 1.2
Есть контроллер Advs, в нем есть функция autoComplete (с простым содержимым для проверки работоспособности):

function autoComplete ( )
{
$this->set('a', 'test');
}

соответственно view autoComplete:

<?php echo $a; ?>


ну и на главной странице есть такой код:

<?php echo $form->create ( 'Advs', array ( 'url' => '/advs/view' ) ); ?>
<?php echo $ajax->autoComplete ( 'Advs/descr', '/advts/autoComplete' ) ?>
<?php echo $form->end ( 'Go' ) ?>

Также в контроллере подключены хелперы и компонент:
var $helpers = array ( 'Html', 'Form', 'Javascript', 'Ajax' );
var $components = array ( 'RequestHandler' );

ничего не работает. может кто подскажет что я сделал не так? Где допустил ошибку?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
michas

цитировать



Зарегистрирован: 28 Янв 2008 11:28:31
Сообщения: 123

СообщениеДобавлено: 02 Апр 2009 21:22:56    Заголовок сообщения: Re: Ajax autoComplete не работает Ответить с цитатой

uran26 писал(а):
'Advs/descr'

Это что такое?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора  
ICQ Number
uran26

цитировать



Зарегистрирован: 02 Апр 2009 12:13:49
Сообщения: 31
Откуда: Кировоград

СообщениеДобавлено: 03 Апр 2009 10:56:06    Заголовок сообщения: Re: Ajax autoComplete не работает Ответить с цитатой

Таблица и поле в ней же
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
michas

цитировать



Зарегистрирован: 28 Янв 2008 11:28:31
Сообщения: 123

СообщениеДобавлено: 04 Апр 2009 23:29:38    Заголовок сообщения: Ответить с цитатой

А не через точку ли случайно пишется?
_________________
Все самое интересное в реальном времени - xmpp:cakephp@conference.jabber.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора  
ICQ Number
Гость

цитировать






СообщениеДобавлено: 06 Апр 2009 09:25:08    Заголовок сообщения: Ответить с цитатой Изменить/удалить это сообщение

michas писал(а):
А не через точку ли случайно пишется?


изначально так и было. ни так, ни так не работает.
Вернуться к началу
 
michas

цитировать



Зарегистрирован: 28 Янв 2008 11:28:31
Сообщения: 123

СообщениеДобавлено: 06 Апр 2009 20:53:03    Заголовок сообщения: Ответить с цитатой

а prototype подключен? а scriptaculous?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора  
ICQ Number
uran26

цитировать



Зарегистрирован: 02 Апр 2009 12:13:49
Сообщения: 31
Откуда: Кировоград

СообщениеДобавлено: 07 Апр 2009 10:33:05    Заголовок сообщения: Ответить с цитатой

Да, в layouts/default.ctp:

<?php echo $javascript->link('scriptaculous.js?load=effects') ?>
<?php echo $javascript->link('prototype') ?>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Fenrir

цитировать



Зарегистрирован: 29 Авг 2008 07:59:05
Сообщения: 5

СообщениеДобавлено: 07 Апр 2009 15:25:37    Заголовок сообщения: Ответить с цитатой

Господа, вы бы хоть издалека на документацию глянули ДО того, как что-нибудь пытаться писать. И вывод ошибок включили.

По процессу разработки вообще:
1. Уровень дебага как минимум 1. А то у вас там может быть гора warning и notice, а мы тут предполагаем, что все видимые ошибки вы уже сами пофиксили.
2. Проверка ведется в Firefox со включенным плагином Firebug. Так и только так. Потому что, судя по приведенному коду, у вас браузер должен захлебываться ошибками JS.

По кейку:
1. Имена полей пишутся через точку и только через точку.
2. Имена моделей всегда в единственном числе. Короче, с формой бред.
3. Автокомплитер реагирует (показывает) только ответы, содержащие ненумерованый список. То есть "минимальный вид для проверки работоспособности" должен выглядеть так: <ul><li><?php echo $a; ?></li></ul>

По prototype и script.aculo.us:
1. Сперва подключается prototype, а только затем script.aculo.us
2. Автокомплитер не эффект, а контрол, и библиотеку контролов тоже нужно грузить: scriptaculous.js?load=effects,controls
3. Смотреть нужно не только "появилось окошко или нет", а также "ушел ли запрос" и "что пришло в ответе".
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
uran26

цитировать



Зарегистрирован: 02 Апр 2009 12:13:49
Сообщения: 31
Откуда: Кировоград

СообщениеДобавлено: 07 Апр 2009 16:57:10    Заголовок сообщения: Ответить с цитатой

уровень дебага 2
видимых warning и notice нет

как я и писал, изначально имена полей разделял через точку(в каком то примере нашел через слеш, решил проверить уже и так, но...), сейчас исправил - через точку.
имя модели (в форме: "<?php echo $ajax->autoComplete ( 'Adv.descr', '/advs/autoComplete' ) ?> ") в единственном числе - немного правил для вашего же удобства и лишнее написал.
ответ для автокомплитера формируется в ненумерованном списке - опустил для краткости.

согласно вашим замечаниям изменил порядок подключения библиотек:
<?php echo $javascript->link('prototype') ?>
<?php echo $javascript->link('scriptaculous.js?load=effects,controls ') ?>

изменений нет, кроме того, что ИЕ говорит: "выполнено, но с ошибками. предполагается наличие объекта строка 25", вот строки 24-26:

//<![CDATA[
new Ajax.Autocompleter('AdvId', 'AdvId_autoComplete', '/advs/autoComplete', {});
//]]>

В javascript не спец. подскажите что дальше?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Fenrir

цитировать



Зарегистрирован: 29 Авг 2008 07:59:05
Сообщения: 5

СообщениеДобавлено: 14 Апр 2009 16:42:34    Заголовок сообщения: Ответить с цитатой

Да что тут быть спецом, вам даже долбанутый IE прямым текстом сказал, что нету у него этого объекта. У вас либо вообще прототайп не прогрузился (и он ругнулся на new Ajax), либо скрипакулосовские контролы (и ошибка касается new Ajax.Autocompleter). Вам же сказано было, Firefox и Firebug - чтобы узнать настоящую ошибку.

Для работы нужен prototype.js, scriptaculous.js, effects.js (здесь он нафиг, но раз вы его подключаете), controls.js. Причем версии прототайпа и скриптакулоса должны быть совместимы. И лежать оно должно в app/webroot/js при вашем подключении.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
uran26

цитировать



Зарегистрирован: 02 Апр 2009 12:13:49
Сообщения: 31
Откуда: Кировоград

СообщениеДобавлено: 15 Апр 2009 10:39:31    Заголовок сообщения: Ответить с цитатой

разобрался. все работает.

делал так как написано тут /wiki/Manual11/Helpers#h30-30. тут и ошибки подцепил - вместо точки ставил слеш при разделении полей таблицы, например (см. выше посты michas и Fenrir).

смотрел в firebug - ничего уходило и не приходило соответственно Smile

закачал заново свежие версии библиотек javascript - prototype и scriptaculous с http://script.aculo.us/downloads (prototype брал не с http://www.prototypejs.org/). подключил echo $javascript->link(array(‘prototype’,’scriptaculous’));

основной проблемой, мне кажется, был пустой ajax.ctp, который лежал в view/layouts/
сунул я его туда когда делал корзину для магазина на ajax как в статье http://com.spweb.ru/archives/150, а потом просто забыл кильнуть.

кажется и все что я поменял.
спасибо тем кто откликнулся.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Евгений
Гость
цитировать






СообщениеДобавлено: 16 Окт 2009 16:17:39    Заголовок сообщения: Ответить с цитатой Изменить/удалить это сообщение

Проблема возникла такая.
Когда путь к странице такой http://моиСайт/poiskP.php, то все отлично работает, список выпадает.
Но когда такой http://моиСайт/poisk/ (в .htaccess правило RewriteRule ^(.*)poisk/(.*)$ $1poiskP.php$2) то нифига не работает.

Как исправить? Вариант использования poiskP.php не катит.
Спасибо.
Вернуться к началу
 
Евгений
Гость
цитировать






СообщениеДобавлено: 16 Окт 2009 16:20:01    Заголовок сообщения: Ответить с цитатой Изменить/удалить это сообщение

Сделал выпадающий список с использованием Ajax.Autocompleter.
Но вылез косяк.
Когда путь к странице такой http://моиСайт/poiskP.php, то все отлично работает, список выпадает.
Но когда такой http://моиСайт/poisk/ (в .htaccess правило RewriteRule ^(.*)poisk/(.*)$ $1poiskP.php$2) то нифига не работает.

Как исправить? Вариант использования poiskP.php не катит.
Спасибо.
Вернуться к началу
 
pihto

цитировать



Зарегистрирован: 16 Окт 2009 16:26:13
Сообщения: 2

СообщениеДобавлено: 16 Окт 2009 16:27:26    Заголовок сообщения: Ответить с цитатой

Сделал выпадающий список с использованием Ajax.Autocompleter.
Но вылез косяк.
Когда путь к странице такой http://моиСайт/poiskP.php, то все отлично работает, список выпадает.
Но когда такой http://моиСайт/poisk/ (в .htaccess правило RewriteRule ^(.*)poisk/(.*)$ $1poiskP.php$2) то нифига не работает.

Как исправить? Вариант использования poiskP.php не катит.
Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
pihto

цитировать



Зарегистрирован: 16 Окт 2009 16:26:13
Сообщения: 2

СообщениеДобавлено: 16 Окт 2009 16:35:38    Заголовок сообщения: Ответить с цитатой

Извиняюсь, за такое количество сообщений.
При попытке написать сообщение выдавал ошибку, а сообщение оказывается публиковал.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru