|
Cake-PHP.ru Форум программистов CakePHP (на сайт)
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
yuriyb Гость цитировать
|
Добавлено: 29 Ноя 2008 12:27:41 Заголовок сообщения: AJAX & implementing dependent select boxes like CAKEPHP |
|
|
Добрый день !
я как то уже поднимал вопрос
"как сделать c AJAX селект страна->регион->город"
http://groups.google.com/group/cake-php-ru/browse_thread/thread/e28eb...
и была тут также тема
"Умные SELECT'ы "малой кровью" -- реально? "
http://groups.google.com/group/cake-php-ru/browse_thread/thread/8180a...
также и в инете я нашел несколько решений
http://www.devmoz.com/blog/2007/04/04/cakephp-update-a-select-box-usi...
http://www.palivoda.eu/2008/04/dependent-select-update-with-json-requ...
http://j4vk.com/wordpress/2008/08/07/cakephp-dynamic-select-boxes-ajax/
сам я пока сделал так elements/geo
$countries=$this->requestAction('geos/
get_countries/');
echo $form->input('Geo.country_id',
array('options' => $countries ,
'empty' => 'укажите страну',
'selected' => $id ,
'label' => 'Страна')
);
$options = array('url' => '/geos/get_regions/','update'
=>'div_region_id',
'with' => 'Form.Element.serialize(\'GeoCountryId\')',
'loading' => '$(\'div_spinner\').style.display = \'block\';',
'complete' => '$(\'div_spinner\').style.display = \'none\';');
echo $ajax->observeField('GeoCountryId',$options);
if ($id)
{
$regions=$this->requestAction('geos/get_regions/'.$id);
}
else if (!isset($regions))
{
$regions ='';
}
echo '<div id = "div_region_id">';
echo $form->input('Geo.region_id',
array(
'options' => $regions,
'empty' => 'укажите регион',
'label' => 'Регион')
);
echo '</div>';
if (!isset($cities)) $cities ='';
echo '<div id = "div_city_id">';
echo $form->input('Geo.city_id',
array(
'options' => $cities,
'empty' => 'укажите город',
'label' => 'Город')
);
echo '</div>';
т к подобную конструкцию мне надо использовать много раз
на разных страницах то я ищу болеее универсальное рещение
мое решение уже хорошое
сейчай достаточно для вызова одой строчки
echo $this->Element('geo', array("id" => 3159));
и можно также передавать параметры
и кроме того я использую страндарт cakephp $ajax->observeField
вместо любимого в таких рещениях jQeury
к недостаткам рещения я бы отнес вызов 3 раза $this->requestAction
что негатавно играет на производительности
есть ли пути улучшить это решение
сделать это как то в виде helpere или что то вроже того
и более унививерсальное
к примеру с таким фунционалом
e ($this->Geo( 3159,'city_id')) выводит селекты с уже выбранными
страной /регион/город
e ($this->Geo( schow=>array('country'))) выводит селектор только
выбора страны
и что бы при необходимости можно было прикрутить следущие
dependent select boxes
к примуру "Выбор улицы"
а также управляемость при помощи JS
если пользолователь сделал действие например
выбор позиции с помощью googlemap
что бы автоматом перестроися и селест
есть какие то идеи как это можно слелать ? |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 29 Ноя 2008 16:27:48 Заголовок сообщения: |
|
|
Без запросов можно обойтись только в случае, если заранее генерировать элементы в файл. И включать в лейаут уже отрендереные списки городов/улиц/районов
Или кешировать. |
|
Вернуться к началу |
|
|
|
|
Вы можете начинать темы Вы можете отвечать на сообщения Вы можете редактировать свои сообщения Вы можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group Русская поддержка phpBB
|