Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 2048 Просмотров
*

g3.

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Доброе время суток, народ!

пишу компонент для центра недвижимости, ребром встал вопрос реализации структуры выбора полного адреса, в идеале заказчик требует чуть ли не регион-район-населённый пункт-микрорайон-улица

не подскажете, как реализовать?

данные по регионам, районам и населённым пунктам храню в бд

как выводить селекты - знаю, а с ajax-ом совсем плохо=(

помогите, кто может, хотя бы советом натолкните на мысль

Пробовала так:

Структура бд:

Таблица с регионами:

Код
CREATE TABLE IF NOT EXISTS `jos_ai_regions` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;

Таблица с районами:

Код
CREATE TABLE IF NOT EXISTS `jos_ai_districs` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `id_of_region` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=272 ;

Таблица с городами:

Код
CREATE TABLE IF NOT EXISTS `jos_ai_cities` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `id_of_district` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=24 ;

Код task-а в конструкторе (для выборки и вывода районов):

Код
function getDistrics()
    {
        
        $id = JRequest::getVar('rid');
            $model = $this->getModel('local');
            $district = $model->getDistrics($id);

        if ($district)
                   {
                $html = JText::_('Выберите район').':</td><td>'
                   .JHTML::_('select.genericlist', $district, 'district', 'class="inputbox"', 'value', 'text', $row->district).'</td><td><a href="#" onclick="ajaxGetDistrics()">ОК</a></td>
                    </td></tr>';    
    
            }
                 else
                   {
                    $html = 'Нет районов для этого региона';
            }

             echo $html;
    }

Код функции в модели:


Код
function getDistrics($id)
  {
                $db = &$this->getDBO();
                $query = 'SELECT id AS value, name AS text '
                . ' FROM #__ai_districs'
                . ' WHERE id_of_region ='.$id;
               $db->setQuery($query);
               $district = $db->loadAssocList();
               return $district;
  }

Собственно сам код скрипта:

Код
function ajaxGetDistrics() {

    var req = getXmlHttp()  

    var statusElem = document.getElementById('districs');
var id = document.getElementById('region').value;
 
    req.onreadystatechange = function() {  

 
        if (req.readyState == 4) {

 
            statusElem.innerHTML = req.statusText
 
            if(req.status == 200) {

var newElement = document.createElement('td')
  newElement.innerHTML = req.responseText
statusElem.appendChild(newElement)
            }

        }
 
    }

    req.open('GET', 'index.php?option=com_cgcadmins&task=hello&format=row&rid='+id, true);  

    req.send(null);  // отослать запрос

    statusElem.innerHTML = 'Ожидаю ответа сервера...'
}

для работы с JTable, создавала свой тулбар, и соответственно подключила его в точке входа в компонент, теперь структура работает, но вместе с ней ещё несколько раз выводится тот самый злосчастный тулбар
ПОЖАЛУЙСТА, помогите! >:(

« Последнее редактирование: 01.04.2011, 00:08:45 от g3. »
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
*

g3.

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
*

g3.

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
нет
оно и так работало

но как справиться с повторением вывода тулбара?

вот точка входа в мой компонент, часть кода до подключения тулбара


Код
require_once( JPATH_COMPONENT.DS.'controllers'.DS.'controller.php' );

JTable::addIncludePath( JPATH_COMPONENT_ADMINISTRATOR . DS . 'tables' );

if($controller = JRequest::getVar( 'controller' )) {
    require_once( JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php' );
}

 jimport('joomla.application.component.helper');
 
 require_once( JPATH_COMPONENT_ADMINISTRATOR.DS.'helpers'.DS.'toolbar.php' );

[b]echo CgcadminsHelperToolbar::CgcadminsToolbar();[/b]//<-оно
*

g3.

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
и в итоге помимо возвращаемых мне контроллером данных, ещё и тулбар идёт в подарок=(
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
ну, понятное дело, тулбар не надо выводить в точке входа. для этого есть view
*

g3.

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
спасибо ^-^
я просто когда тулбар создавала, руководствовалась статьёй http://docs.joomla.org/How_to_use_the_JToolBar_class_in_the_frontend
и поэтому сделала так

ОГРОМНОЕ спасибо Вам!

скажите, а мой метод реализации структуры регион-район-населённый пункт сильно "корявый"?
« Последнее редактирование: 02.04.2011, 15:25:44 от g3. »
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
скажите, а мой метод реализации структуры регион-район-населённый пункт сильно "корявый"?

Сложно сказать. Все зависит от ТЗ проекта.
Если в компонент жестко вбиты "словари" для регионов, районов и нас. пунктов, то в целом все ок.
Если эти данные берутся из данных недвижимости, проще не делать словари, а делать нечто вроде
SELECT DISTINCT city FROM #__properties ORDER BY city
как-то так.
ну и связь между ними тоже делать через общую базу.
*

g3.

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
ну таблички с данными - да, там данные будут статичные

а по тз просто требовалось, при подаче заявки на продажу/покупку недвижимости, указать местоположение
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавление поля Регион в DJClassifieds

Автор More100

Ответов: 3
Просмотров: 2411
Последний ответ 30.01.2012, 20:35:40
от More100
Treenode в своём компоненте

Автор g3.

Ответов: 2
Просмотров: 1409
Последний ответ 01.04.2011, 15:47:53
от g3.
Генерация изображений в компоненте

Автор Cerebrum

Ответов: 4
Просмотров: 1632
Последний ответ 10.03.2011, 20:32:40
от shprota
Как лучше организовать загрузку/хранение картинок в компоненте?

Автор Виталик

Ответов: 6
Просмотров: 2043
Последний ответ 13.06.2010, 12:57:12
от effrit
передача данных в компоненте через GET и POST?

Автор NTFS

Ответов: 1
Просмотров: 2435
Последний ответ 12.03.2010, 10:02:28
от Mitrich