Помощь по JQuery Autocomplete
Вложений: 1
Час добрый форумчане. Помогите пожалуйста разобраться с автозаполнением поля. Возникла такая проблема и решил обратиться к Вам как к специалистам, хорошо разбирающимся в данной области. Суть вот в чем. Вот есть пример реализации автозаполнения поля город http://www.instantcms.ru/blogs/lunyi...-profilja.html. Как сделать на основе этого варианта, чтобы поле профессия работало по такому же прицепу? Т.е. на странице регистрации имеются несколько полей, из них поле "город" и поле "профессия" должны обладать функцией автозаполнения по примеру выше. Помогите пожалуйста! Заранее премного благодарен!!!
P.S. И, кстати, я могу сам заменить список городов профессиями, чтобы Вам было меньше мороки. Только покажите как это должно выглядеть. |
Если вы хотите, чтобы кто-то сделал это за вас, то вам нужно в раздел "работа". Если же вы хотите разобраться, то в целом весь процесс будет выглядеть как-то так:
1. при заполнении нужного вам инпута (например, когда юзер ввел 3 символа) делается ajax запрос с введенными символами к серверу. 2. серверная часть обращается к вашему списку профессий (уж не знаю где он у вас будет лежать в массиве или в базе данных) и ищет в нем совпадения с введенными символами. 3. Результаты поиска отправляются ответом на ajax запрос и выводятся (например, ниже как подсказки) там где вам это нужно. Вот вам 3 достаточно простых шага, с помощью которых вы можете реализовать то, что вам нужно с любыми сущностями (города, профессии и т.д.) и без всяких плагинов. Как работает ajax вы можете посмотреть вот тут. Серверная часть легко описывается одним методом или функцией, в зависимости от того, какой стиль вы предпочитаете. |
Думаю, что автор примера, на который вы сослались выше просто обязан как можно скорее убиться об стену за кашу из html, php и js.
|
Процесс работы мне понятен. Я реализовал указанный пример на странице регистрации. Работает. Теперь мне необходимо добавить функцию автозаполнения к полю профессия. Список профессий хранится в базе данных. Поле профессия имеет 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, в которой хранится список профессий? |
Часовой пояс GMT +3, время: 15:11. |