
Артем
+24
Репутация
0
Рейтинг
Тоже не работает
Ошибся выше. Вставляю вот это:
не сохраняются изменения и выпадает ошибка: Профессию необходимо выбрать из вариантов!
//Автозаполнение поля профессия $item['professia_int'] = cmsCore::request('professia_int', 'int', 0); $item['professia'] = cmsCore::request('professia', 'str', ''); if(!$item['city_int']){cmsCore::addSessionMessage('Профессию необходимо выбрать из вариантов!', 'error');$errors = true;} else{ $sql = "SELECT id, professia FROM cms_user_profession WHERE id={$item['professia_int']}"; $professia = $inDB->query($sql); if($inDB->num_rows($professia)){ $professia = $inDB->fetch_assoc($professia); $item['professia'] = $professia['professia']; $item['geo'] = cmsCore::arrayToYaml($city); }else{cmsCore::addSessionMessage('Профессию необходимо выбрать из вариантов!', 'error');$errors = true;} }
Изменил запрос на этот:
и в файле autocomplete.js добавил такие строки:
и вот тут:
работает все отлично! Но возникли проблемы с добавлением автозаполнения поля в профиле. В файле /components/users/frontend.php вставляю
не сохраняются изменения и выпадает ошибка: Выберите профессию из списка.
<?php include(PATH.'/core/cms.php'); $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); $professia = $inCore->request('query', 'str'); //Идентификатор главной страны $id_main_country = 1; $sql = "SELECT id, professia, COUNT( id ) AS popule FROM cms_user_professions WHERE professia LIKE '{$professia}%' GROUP BY professia ORDER BY popule DESC , professia ASC"; $res = $inDB->query($sql); if ($inDB->num_rows($res)) { while($ress = $inDB->fetch_assoc($res)){ $suggestions[] = ($ress['popule'] > 10 ? '<b>' : '').$ress['professia']; } }
select: function (i) { var selectedValue, f; var selectedValue1, f; selectedValue = this.data[i].city; selectedValue1 = this.data[i].professia; if (selectedValue) { this.el.val(selectedValue); if (this.options.autoSubmit) { f = this.el.parents('form'); if (f.length > 0) { f.get(0).submit(); } } this.ignoreValueChange = true; this.hide(); this.onSelect(i); }
adjustScroll: function (i) { var activeItem, offsetTop, upperBound, lowerBound; activeItem = this.activate(i); offsetTop = activeItem.offsetTop; upperBound = this.container.scrollTop(); lowerBound = upperBound + this.options.maxHeight - 25; if (offsetTop < upperBound) { this.container.scrollTop(offsetTop); } else if (offsetTop > lowerBound) { this.container.scrollTop(offsetTop - this.options.maxHeight + 25); } this.el.val(this.getValue(this.data[i].city)); this.el.val(this.getValue(this.data[i].professia)); },
$city_int = cmsCore::request('city_int', 'int', 0); if(!$city_int){cmsCore::addSessionMessage('Город необходимо выбрать из вариантов!', 'error');$errors = true;} else{ $sql = "SELECT s.id_city, s.id_region, s.id_country, s.city_name_ru, r.region_name_ru, c.country_name_ru FROM cms_geo_cities s 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 s.id_city={$city_int}"; $geo = $inDB->query($sql); if($inDB->num_rows($geo)){ $geo = $inDB->fetch_assoc($geo); $city= $geo['city_name_ru']; $geo = cmsCore::arrayToYaml($geo); }else{cmsCore::addSessionMessage('Город необходимо выбрать из вариантов!', 'error');$errors = true;} }
Пробовал, не работает! Я так понимаю, нужно править обработчик PHP, который делает выборку по базе и возвращает ответ в javascript. Как правильно его составить?
Доброго времени! Тут: ПРИМЕР реализовано автозаполнение поля город. Нужно сделать тоже самое для поля профессия. т.е на странице регистрации будут несколько полей, из них поля город и профессия должны обладать автозаполнением по примеру выше. Как это сделать?
Доброго времени! Добавил на своем сайте поле с авто-подбором поля город по этому примеру:
instantcms.ru/blogs/lunyi-blog/ajaks-podbor-goroda-profilja.htmlhttp://instantcms.ru/blogs/lunyi...-profilja.html
Встала задача добавить еще одно поле — "профессия". Создал в базе данных таблицу cms_users_profession с полями id_proff и user_proff. Теперь нужно модифицировать обработчик php:
который делает запрос к базе и возвращает ответ. Поле ввода профессии имеет id="proff". Помогите разобраться!
instantcms.ru/blogs/lunyi-blog/ajaks-podbor-goroda-profilja.htmlhttp://instantcms.ru/blogs/lunyi...-profilja.html
Встала задача добавить еще одно поле — "профессия". Создал в базе данных таблицу cms_users_profession с полями id_proff и user_proff. Теперь нужно модифицировать обработчик php:
<?php include(PATH.'/core/cms.php'); $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); $city = $inCore->request('query', 'str'); //Идентификатор главной страны $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']); } }
Я понял, что нужно изменить вот это:
под свою таблицу. Но как правильно это сделать? Я пробовал убрать лишние поля для выборки — не работает!
Подскажите пожалуйста!
<?php include(PATH.'/core/cms.php'); $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); $city = $inCore->request('query', 'str'); //Идентификатор главной страны $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']); } }
Подскажите пожалуйста!
Добавил на страницу регистрации поле город по этому примеру: instantcms.ru/blogs/lunyi-blog/ajaks-podbor-goroda-profilja.html Как реализовать такой же функционал у поля профессия? Создал в базе данных таблицу cms_users_professia с полями id и professia. Как изменить файл cities.php для выборки по базе и возврата результата?
Прикрепленный файл
cityselect_b6nek.zip
277 Кб
- Предыдущая
- 1
- 2
- 3
- 4
- Показаны 46-53 из 53