Показать сообщение отдельно
  #4 (permalink)  
Старый 11.01.2013, 13:14
Интересующийся
Отправить личное сообщение для troi88 Посмотреть профиль Найти все сообщения от troi88
 
Регистрация: 07.01.2013
Сообщений: 14

Процесс работы мне понятен. Я реализовал указанный пример на странице регистрации. Работает. Теперь мне необходимо добавить функцию автозаполнения к полю профессия. Список профессий хранится в базе данных. Поле профессия имеет id="proff". Нужна переделать файл php, который делает запрос к базе данных и возвращает ответ. Например:
<?php
define('PATH', dirname(__FILE__));
define("VALID_CMS", 1);

include(PATH.'/core/cms.php');

$inCore = cmsCore::getInstance();
$inDB = cmsDatabase::getInstance();

$city = $inCore->request('query', 'str');
if(!$city)exit;

//Идентификатор главной страны
$id_main_country = 1;

$sql = "SELECT s.id_city, s.id_region, s.id_country, s.city_name_ru, r.region_name_ru, c.country_name_ru, COUNT( p.id ) AS popule
FROM cms_geo_cities s
LEFT JOIN cms_user_profiles p ON s.city_name_ru = p.city
LEFT JOIN cms_geo_countries c ON s.id_country = c.id_country
LEFT JOIN cms_geo_regions r ON s.id_region = r.id_region
WHERE city_name_ru LIKE '{$city}%'
GROUP BY s.city_name_ru
ORDER BY popule DESC , s.city_name_ru ASC";
$res = $inDB->query($sql);
if ($inDB->num_rows($res)) {
while($ress = $inDB->fetch_assoc($res)){
$suggestions[] = ($ress['popule'] > 10 ? '<b>' : '').$ress['city_name_ru'].($ress['popule'] > 10 ? '</b>' : '').' <i> \ '.$ress['region_name_ru'].($ress['id_country']==$id_main_country ? '' : '<span> \ '.$ress['country_name_ru'].'</span>').'</i>';
$data[] = array('city' => $ress['city_name_ru'], 'id_city' => $ress['id_city'], 'id_region' => $ress['id_region'], 'id_country' => $ress['id_country']);
}
}
cmsCore::jsonOutput(array('query' => $city, 'suggestions' => $suggestions, 'data' => $data));

это обработчик поля город. А как сделать выборку по таблице proff, в которой хранится список профессий?

Последний раз редактировалось troi88, 11.01.2013 в 13:25.
Ответить с цитированием