metrpro

Исчезает улица при редактировании объявления

Recommended Posts

В общем ограничивающий запрос на улицы может иметь вид

select * from re_street where name !='' AND city_id>0 order by name

сравнение на "больше нуля" автоматом выкинет все значения с пустым И нулевым значением связки с таблицей городов - т.е. безхозные улицы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если же стоит задача не выводить улицы вообще, если не выбран город на стандартной связке географических элементов, то тут немного другой принцип.

Суть в том, что запрос указываемый в поле запроса в параметрах элемента улицы является первичным. Он используется ТОЛЬКО в том случае, если в запросе не был указан город. Если с формы поиска приходит идешка города, этот запрос игнорируется полностью и используется другой запрос на выборку. В таком случае, что бы занулить улицы при "первой" загрузке формы, когда мы еще не выбрали город, мы может сформировать его в виде

select * from re_street where name !='' AND city_id=-1 order by name

т.е. запрашиваем заведомо неправильный запрос, который 100% вернет нам ничего. При выборе города на форме, аякс запросит улицы по своему запросу с учетом города и в обновленном рефреше вернет нам список по искомому городу. При выборе города на форме и сабмите формы, идешка города пройдет у нас по запросу и опять будет сформирован запрос на выборку улиц по городу, который вернет нужный список. Но при первом доступе к форме, когда город еще никак не выбран, будет использован этот "кривой" первичный запрос с пустым результатом.

 

Не следует забывать, что если вы используете какую-то форму где нет выбора города, но есть выбор улицы, то в таком случае вы получите облом, так как на ней, из-за отсуствия города, ВСЕГДА будет применяться первичный запров, который, как мы помним, заведомо возращает пустой список улиц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, abushyk сказал:

При выборе города на форме, аякс запросит улицы по своему запросу с учетом города и в обновленном рефреше вернет нам список по искомому городу. При выборе города на форме и сабмите формы, идешка города пройдет у нас по запросу и опять будет сформирован запрос на выборку улиц по городу, который вернет нужный список.

Форма запроса select * from re_street where name !='' AND city_id=-1 не срабатывает полностью так, как надо.

Во-первых, на странице редактирования объявления опять теряется улица.

Во-вторых: поисковая форма вообще перестаёт отдавать улицы в поисковых формах на страницах realty_view.

nostreet.jpg

использование на страницах grid работает отлично.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

еще вопрос - раз уж занялись формами попутно.

Иногда в форме поиска street_list выводится красиво:

var2.jpg

А иногда - стандартно:

var1.jpg

Почему? Как всегда сделать красивый вывод? И сделать аналогично для city_list?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

просто растеряли скрипты обновления элемента на форме в карточке. вернул и включил "красивое" рисование селектов на форме поиска.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, abushyk сказал:

просто растеряли скрипты обновления элемента на форме в карточке. вернул и включил "красивое" рисование селектов на форме поиска.

За красоту спасибо большое, Костя. И за появление улиц в карточке тоже.

А как же все таки быть с потерей улиц при редактировании?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, metrpro сказал:

А как же все таки быть с потерей улиц при редактировании?

Я вчера пробовал создавать объявку с указанной улицей и менять ее. Улица, если она указана самостоятельно через форму, сохраняется. "Пропасть" улица может только если она установлена в обход формы. Например при той же несвязанности при загрузке между городом и улицей. При парсинге и город, и улица пропишутся и даже будут выводиться в списках. Но при заходе в форму применятся существующие связки между городом и улицей и, если лица не принаджлежт указанному городу, она естественно сбросится - в этом и весь смысл связей между геоэлементами. Это единственный случай, когда может быть самопроизвольный сброс улицы. Но изменить эту логику нельзя - если связи есть, то форма всегда будет пытаться их выдержать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, metrpro сказал:

За красоту спасибо большое, Костя. И за появление улиц в карточке тоже.

А как же все таки быть с потерей улиц при редактировании?

а подскажите у нас в админке и на сайте сейчас стоит просто выбор улиц, возможно сделать так же как в быстром поиске, чтобы можно было набирать улицу? улицы без автокомплита, жестко привязаны к городу, и без возможностей новых добавлений

del1.jpg

del2.jpg

 

del3.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вам нужно включить в таблице data параметру street_id функцию autocomplete

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, abushyk сказал:

Улица, если она указана самостоятельно через форму, сохраняется.

Не пашет. Вот одно из свежих объявлений - http://metrpro.ru/prodaja-kvartir/1-komn/realty19313/

Улица пропадает при редактировании и через админ панель, и через редактор карточки как пользователь на сайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
18 часов назад, metrpro сказал:

Не пашет. Вот одно из свежих объявлений - http://metrpro.ru/prodaja-kvartir/1-komn/realty19313/

Улица пропадает при редактировании и через админ панель, и через редактор карточки как пользователь на сайте.

Вижу у вас в условии улиц такое city_id=-1 - это вообще условие Равно -1, т.е. это условие никогда не будет работать, поэтому и пропадают улицы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
58 минут назад, rumantic сказал:

Вижу у вас в условии улиц такое city_id=-1 - это вообще условие Равно -1, т.е. это условие никогда не будет работать, поэтому и пропадают улицы.

Ок. Что поставим?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
18 часов назад, rumantic сказал:

city_id != 0

Дима, эта херня не работает. Отличие от нуля - давно уже это попробовано было. Тогда да, улица не удаляется, но появляется весь хлам в списке улиц при невыбранном городе.

hlam.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это у большинства такое, если много данных или спарсенные объемы. То улицы плодятся как грибы после дождя.
Ту наверное нужно сделать отдельный скрипт проверки по слияниям улиц.

1) Если улица привязаны к городу, берем ее за эталон.

2) все другие улицы вторичные но подобны по большинству символов предлагать к слиянию с эталоном.
В полуавтоматическом режиме. Ну пока видится так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 21.09.2016 в 11:30, abushyk сказал:

Я вчера пробовал создавать объявку с указанной улицей и менять ее. Улица, если она указана самостоятельно через форму, сохраняется. "Пропасть" улица может только если она установлена в обход формы. Например при той же несвязанности при загрузке между городом и улицей. При парсинге и город, и улица пропишутся и даже будут выводиться в списках. Но при заходе в форму применятся существующие связки между городом и улицей и, если лица не принаджлежт указанному городу, она естественно сбросится - в этом и весь смысл связей между геоэлементами. Это единственный случай, когда может быть самопроизвольный сброс улицы. Но изменить эту логику нельзя - если связи есть, то форма всегда будет пытаться их выдержать.

Костя, какбэ решения все равно нет.

Вместо того, чтобы мучаться с формой запроса, может пойти другим путем и при открытии страницы редактирования объявления в срабатывание процедуры document.load добавить рефреш списка улиц?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 22.09.2016 в 14:45, rumantic сказал:

Вижу у вас в условии улиц такое city_id=-1 - это вообще условие Равно -1, т.е. это условие никогда не будет работать, поэтому и пропадают улицы.

Не совсем никогда. Только тогда, когда в запросе не будет города. Поэтому на форме поиска срабатывает на ура, а в карточке нет. Значит city_id=-1 не вариант, я не предусмотрел всего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 26.09.2016 в 12:18, abushyk сказал:

Не совсем никогда. Только тогда, когда в запросе не будет города. Поэтому на форме поиска срабатывает на ура, а в карточке нет. Значит city_id=-1 не вариант, я не предусмотрел всего.

Костя, уже давайте решим это как-то

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас