Javascript.RU

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

Помощь по JQuery Autocomplete
Час добрый форумчане. Помогите пожалуйста разобраться с автозаполнением поля. Возникла такая проблема и решил обратиться к Вам как к специалистам, хорошо разбирающимся в данной области. Суть вот в чем. Вот есть пример реализации автозаполнения поля город http://www.instantcms.ru/blogs/lunyi...-profilja.html. Как сделать на основе этого варианта, чтобы поле профессия работало по такому же прицепу? Т.е. на странице регистрации имеются несколько полей, из них поле "город" и поле "профессия" должны обладать функцией автозаполнения по примеру выше. Помогите пожалуйста! Заранее премного благодарен!!!
P.S. И, кстати, я могу сам заменить список городов профессиями, чтобы Вам было меньше мороки. Только покажите как это должно выглядеть.
Вложения:
Тип файла: zip city_select.zip (276.3 Кб, 1 просмотров)

Последний раз редактировалось troi88, 07.01.2013 в 15:23.
Ответить с цитированием
  #2 (permalink)  
Старый 10.01.2013, 14:18
Аспирант
Отправить личное сообщение для rockerror Посмотреть профиль Найти все сообщения от rockerror
 
Регистрация: 07.11.2011
Сообщений: 54

Если вы хотите, чтобы кто-то сделал это за вас, то вам нужно в раздел "работа". Если же вы хотите разобраться, то в целом весь процесс будет выглядеть как-то так:
1. при заполнении нужного вам инпута (например, когда юзер ввел 3 символа) делается ajax запрос с введенными символами к серверу.
2. серверная часть обращается к вашему списку профессий (уж не знаю где он у вас будет лежать в массиве или в базе данных) и ищет в нем совпадения с введенными символами.
3. Результаты поиска отправляются ответом на ajax запрос и выводятся (например, ниже как подсказки) там где вам это нужно.

Вот вам 3 достаточно простых шага, с помощью которых вы можете реализовать то, что вам нужно с любыми сущностями (города, профессии и т.д.) и без всяких плагинов. Как работает ajax вы можете посмотреть вот тут. Серверная часть легко описывается одним методом или функцией, в зависимости от того, какой стиль вы предпочитаете.

Последний раз редактировалось rockerror, 10.01.2013 в 14:59.
Ответить с цитированием
  #3 (permalink)  
Старый 10.01.2013, 14:24
Аспирант
Отправить личное сообщение для rockerror Посмотреть профиль Найти все сообщения от rockerror
 
Регистрация: 07.11.2011
Сообщений: 54

Думаю, что автор примера, на который вы сослались выше просто обязан как можно скорее убиться об стену за кашу из html, php и js.
Ответить с цитированием
  #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.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение символов ввода в jQuery Autocomplete Luter1984 Библиотеки/Тулкиты/Фреймворки 1 04.02.2013 10:13
Срочно нужна помощь с jQuery, cookies xxxLOGIATxxx Библиотеки/Тулкиты/Фреймворки 0 08.05.2011 09:57
jQuery Autocomplete: автозаполнение mshdn AJAX и COMET 1 13.04.2011 15:55
autocomplete jquery alexandr_poskrobka jQuery 0 21.12.2010 17:39
Нужна помощь по jquery exor jQuery 7 01.06.2010 12:30