Доброе время суток, народ!
пишу компонент для центра недвижимости, ребром встал вопрос реализации структуры выбора полного адреса, в идеале заказчик требует чуть ли не регион-район-населённый пункт-микрорайон-улица
не подскажете, как реализовать?
данные по регионам, районам и населённым пунктам храню в бд
как выводить селекты - знаю, а с 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, создавала свой тулбар, и соответственно подключила его в точке входа в компонент, теперь структура работает, но вместе с ней ещё несколько раз выводится тот самый злосчастный тулбар
ПОЖАЛУЙСТА, помогите!