"Условия выборки" в поле список

#1 15 октября 2024 в 09:53

Добрый день, товарищи. 

В поле «список», если мы формируем значения из таблицы БД, появляется опция «условия выборки». Работает норм, если понимать зачем она нужна.

Например, это условие выведет строки из таблицы, где id записи равно id текущего пользователя  [{«field»: «id», «condition»: «eq», «value»: "{user.id}"}] 

Собственно вопрос. Есть у нас список, формируемый из таблицы 'streets' с полями id | street | cityid. И есть отдельное поле-список 'city' со списком городов с полями id | city. Как в списке streets прописать условия выборки в зависимости от выбранного на данный момент (на моменте заполнения полей при добавлении записи) города в таблице city? Т.е. можно ли это вообще сделать динамически в данном случае? Из серии:  [{«field»: «cityid», «condition»: «eq», «value»: "{city}"}] 

Понимаю, что попахивает зависимыми списками, и что скорее всего так не сработает. Но мало ли. 

#2 15 октября 2024 в 10:31

В коробке нет зависимых списков, кроме показа/скрытия всего поля в зависимости от выбранного значения в другом. Условия выборки типа [{«field»: «id», «condition»: «eq», «value»: "{user.id}"}] формируют содержимое списка перед выводом его пользователю. То есть список формируется ещё до того, как его увидит пользователь. Поэтому, чтобы узнать, что пользователь выбрал, надо писать на javascript обработчик события на нужном (родительском) поле, а потом ещё писать обработчик, который вернет/заменит содержимое списка с учетом выбранного значения. Поэтому вариант [{«field»: «cityid», «condition»: «eq», «value»: "{city}"}] не сработает после загрузки страницы в браузере.

#3 15 октября 2024 в 10:37

В коробке нет зависимых списков, кроме показа/скрытия всего поля в зависимости от выбранного значения в другом. Условия выборки типа [{«field»: «id», «condition»: «eq», «value»: "{user.id}"}] формируют содержимое списка перед выводом его пользователю. То есть список формируется ещё до того, как его увидит пользователь. Поэтому, чтобы узнать, что пользователь выбрал, надо писать на javascript обработчик события на нужном (родительском) поле, а потом ещё писать обработчик, который вернет/заменит содержимое списка с учетом выбранного значения. Поэтому вариант [{«field»: «cityid», «condition»: «eq», «value»: "{city}"}] не сработает после загрузки страницы в браузере.

Loadырь

Спасибо за ответ. В целом, так и предполагал. Тогда хотел бы уточнить про скрытие поля в зависимости от значения другого поля. Как это делать в форме добавления материала — понятно. А перенести этот опыт на панель фильтра возможно? Иначе, все поля, которые успешно скрываются в форме добавления, потом разом отображаются в панели фильтра. А это не логично. 

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.