Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
Watched Topics
FAQ
Поиск
Пользователи
Группы
Регистрация
Профиль
Войти и проверить личные сообщения
Вход
Список форумов Cake-PHP.ru
->
Общий
Ответить
Имя
Тема
Сообщение
Смайлики
Дополнительные смайлики
Цвет шрифта:
По умолчанию
Тёмно-красный
Красный
Оранжевый
Коричневый
Жёлтый
Зелёный
Оливковый
Голубой
Синий
Тёмно-синий
Индиго
Фиолетовый
Белый
Чёрный
Размер шрифта:
Размер шрифта
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
[quote="uran26"]Кто-нибудь с помощью $ajax->observeField делал перезагрузку выпадающих списков?[/quote]
Настройки
HTML
ВЫКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Если у вас плохое зрение или вы не можете прочесть этот код по какой-то другой причине, то обратитесь за помощью к
Администратору
.
Код подтверждения: *
Введите код в точности так, как вы его видите. Код является регистро-зависимым, а символ нуля имеет косую линию внутри цифры.
Часовой пояс: GMT + 3
Перейти:
Выберите форум
CakePHP Форум
----------------
Общий
Установка и настройка
Творчество
Вопросы и пожелания
Комментарии к главам руководства по CakePHP 1.1
Обзор темы
Автор
Сообщение
Vlad
Добавлено: 16 Окт 2009 00:45:15
Заголовок сообщения:
Возможно я опять повторюсь...
По мне так проще использовать jQuery (ну или кому что нравится) и обойтись без $ajax хелперов CakePHP.
И код становится проще, и возможностей, в целом, больше.
(Как познал jquery, так забыл про $ajax)
uran26
Добавлено: 15 Окт 2009 18:39:42
Заголовок сообщения:
Кто-нибудь с помощью $ajax->observeField делал перезагрузку выпадающих списков?
uran26
Добавлено: 02 Окт 2009 20:37:43
Заголовок сообщения: $ajax->observeField не работает после перегрузки формы
Есть форма(Ajax и вызвана с помощью ajax запроса):
Код:
echo $ajax->form ( null, "post", array ( "url" => "/users/register", "update" => "white_space", "id" => "forma2009" ) );
...
echo $form->end ( "Register" );
В ней есть 3 select-а: Country, State, City
А к ним $ajax->observeField, который следит за изменениями в Country и подгружают списки стран и областей, заменяет блок <div id='state_city'>.
Выглядит это вот так:
Код:
echo $html->div ( "registration", null, array ( 'id' => 'country' ) );
echo "<nobr>Страна: " . $form->select ( "User.organization_country", $countries, null, array ( 'class' => 'register', 'id' => 'country_select' ), array ( 'default' => ' - ' ) ) . "</nobr></div>";
echo $html->div ( "registration", null, array ( 'id' => 'state_city' ) );
echo $html->div ( "registration", null, array ( 'id' => 'state' ) );
echo "<nobr>Область: " . $form->select ( "User.organization_state", $states, null, array ( 'class' => 'register', 'id' => 'state_select' ), array ( 'default' => ' - ' ) ) . "</nobr></div>";
echo $html->div ( "registration", null, array ( 'id' => 'city' ) );
echo "<nobr>Город: " . $form->select ( "User.organization_city", $cities, null, array ( 'class' => 'register', 'id' => 'city_select' ), array ( 'default' => ' - ' ) ) . "</nobr></div>";
echo "</div>";
echo $ajax->observeField ( "country_select", array ( 'url' => '/states/getStates', 'update' => 'state_city', 'frequency' => 0.2 ) );
После выбора страны перегружается список областей и пустой список городов(так как область еще не выбрана) и добавляется еще один $ajax->observeField (он следит за выбором области)
Вид:
Код:
<?php
echo $html->div ( "registration", null, array ( 'id' => 'state' ) );
echo "<nobr>Область: " . $form->select ( "User.organization_state", $states, null, array ( 'class' => 'register', 'id' => 'state_select' ), array ( 'default' => ' - ' ) ) . "</nobr></div>";
echo $html->div ( "registration", null, array ( 'id' => 'city' ) );
echo "<nobr>Город: " . $form->select ( "User.organization_city", array (), null, array ( 'class' => 'register', 'id' => 'city_select' ), array ( 'default' => ' - ' ) ) . "</nobr></div>";
echo $ajax->observeField ( "state_select", array ( 'url' => '/cities/getCities', 'update' => 'city', 'frequency' => 0.2 ) );
?>
Тут никаких вопросов. Выбрали страну - подгрузился список областей, выбрали область - подгрузились ее города. Все ок.
Но если произошла ошибка валидации какого-то поля, например, Имя указанно неверно, и форма перегрузилась (но не весь сайт) $ajax->observeField перестает подгружать список городов. Но список областей по прежнему отлично подгружается при смене страны(после чего и список стран начинает снова подгружаться
).
Вот такие странности у меня наблюдаются.
Пробовал
Код:
echo $ajax->observeField ( "state_select", array ( 'url' => '/cities/getCities', 'update' => 'city', 'frequency' => 0.2 ) );
оставить стразу после формы, а не подгружать после - не обновляется список городов.
Только если его оставить после формы и дополнительно подгружать вместе со списком областей/городов все работает как нужно. При этом в firebug(вкладка сценарий) наблюдается столько копий сценариев EventObserver, сколько раз перегрузилась форма. Меня устраивает что оно хоть так работает, но думаю это некрасиво и неправильно.
Не встречался ли кто-то с таким? Как можно решить данный вопрос?
Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Если ничего интересного не нашли, можно рекламу почитать, а рекламируется у нас сегодня «».