Доработка JQuery Autocomplete
Возникла такая проблема и решил обратиться к Вам как к специалистам, хорошо разбирающимся в данной области. Суть вот в чем. Вот есть пример реализации автозаполнения поля город http://www.instantcms.ru/blogs/lunyi...-profilja.html.
Я его прикрутил на странице регистрации. Все отлично работает. Нужно сделать на основе этого варианта, чтобы поле профессия работало по такому же прицепу? Т.е. на странице регистрации имеются несколько полей, из них поле "город" и поле "профессия" должны обладать функцией автозаполнения по примеру выше. Списки городов и профессий хранятся в базе данных в таблице 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)); А как сделать обработчик поля профессия? |
если я правильно всё понял, то в твоём примере из сложностей только обработчик города который формирует сложный SQL запрос.
с профессией всё проще, ведь профессия к региону непривязана достаточно просто достать инфу из бд по LIKE значит на клиенте нам понадобится как минимум. $( "#profession" ).autocomplete({ source: "searchprof.php", minLength: 2, select: function( event, ui ) { //какоето действие } }); и в searchprof запрос вида (как конкретно это от таблицы зависит) $sql="SELECT * FROM cms_proffesion WHERE name LIKE '{$prof}%' ORDER BY name ASC"; ничего сложного, ты ценник назови мож кто сделает :) тут больше PHP чем javascript'а |
Цитата:
|
мне старик своего гемороя пока хватает, извини))
смотайся на PHP форум, там быстро сделают. |
Часовой пояс GMT +3, время: 18:12. |