Форум программистов, компьютерный форум, киберфорум
1С Битрикс
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3969 / 2087 / 832
Регистрация: 13.03.2010
Сообщений: 6,886

Отображение полей на странице редактирования в зависимости от выбора в селекте

29.10.2019, 16:24. Показов 4673. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня. Имеем на странице создания элемента select с 4 опциями и 4 textarea. Возможно ли отображать только ту textarea, значение которой выбрано в select?
Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2019, 16:24
Ответы с готовыми решениями:

Добавление полей в зависимости от выбора <select>
http://www.avito.ru/astrahan В разделе поиска, при выборе необходимого раздела мгновенно появляются дополнительные поля для выбора....

Вывод разных полей формы в зависимости от выбора
Здравствуйте! Пишу интернет-магазин. Написал контроллер и action для обработки добавления и редактирования товаров. Возникла необходимость...

Отображение полей в зависимости от условия
Доброго времени суток! Подскажите пожалуйста каким образом можно организовать отображение в форме полей Dates_2 и Price_2, только в том...

8
32 / 28 / 4
Регистрация: 09.12.2015
Сообщений: 100
29.10.2019, 19:53
javascript в помощь, в чем проблема то?
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3969 / 2087 / 832
Регистрация: 13.03.2010
Сообщений: 6,886
29.10.2019, 20:42  [ТС]
NickSolver, проблема в том, что я не очень-то разбираюсь в битриксе. Сторонний разработчик утверждает, что так сделать нельзя. У меня закрались сомнения, поэтому и спрашиваю.
Повторюсь, задача скрывать поля в админке сайта, а не во фронте. Если есть мысли или знания как это решить - велком, с радостью прочитаю и попробую.
Если же ответ был из разряда «набить посты» - просьба пройти мимо и не флудить.
0
32 / 28 / 4
Регистрация: 09.12.2015
Сообщений: 100
29.10.2019, 21:16
Лучший ответ Сообщение было отмечено gogolik как решение

Решение

Нужен модуль примерно во такого вида

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
        'main',
        'OnEpilog',
        'OnEpilog'
    );
 
    function OnEpilog() {
        if (!defined("ADMIN_SECTION") || ADMIN_SECTION !== true) {
            return;
        }
 
        if (
            $GLOBALS['APPLICATION']->GetCurPage() !== '/bitrix/admin/iblock_section_edit.php' ||
            $_REQUEST['IBLOCK_ID'] != 2
        )
            return;
 
        $GLOBALS['APPLICATION']->AddHeadString('<script type="text/javascript">скрипт</script>');
 
 
    }
Его обязательно нужно зарегать, пример

PHP
1
2
3
4
5
6
7
        function DoInstall() {
            global $APPLICATION;
 
            RegisterModuleDependences('main', 'OnEpilog', $this->MODULE_ID);
            RegisterModuleDependences('main', 'OnPageStart', $this->MODULE_ID); 
            \Bitrix\Main\ModuleManager::registerModule($this->MODULE_ID);
        }
Ничего не возможного тут нет, но на форуме врядли кто-то будет Вам его писать, разбираться придется самому. В целом каркас выше) Удачи)
1
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3969 / 2087 / 832
Регистрация: 13.03.2010
Сообщений: 6,886
29.10.2019, 22:49  [ТС]
NickSolver, спасибо, это именно то, что я и хотел увидеть. Писать ничего не нужно, я попробую ваш код на тестовой среде, если сработает - наваляю подрядчику и заставлю всё же реализовать требуемый функционал.
0
32 / 28 / 4
Регистрация: 09.12.2015
Сообщений: 100
29.10.2019, 22:53
Его нужно доводить до ума, прям в таком виде не заработает, но я код взял примерно с такого же кейса, только более сложного. Ничего такого нет, можно даже через init реализовать, расставить по xml_id даты и сделать выборку через js/jquery/vue/что угодно на выбор. Да это костыль, но если надо...
1
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3969 / 2087 / 832
Регистрация: 13.03.2010
Сообщений: 6,886
29.10.2019, 22:58  [ТС]
NickSolver, ну, я и не собираюсь на проекте использовать данный код. Мне главное было узнать, что это возможно реализовать. Остальное уже не моя головная боль будет.
0
3058 / 1457 / 265
Регистрация: 16.03.2008
Сообщений: 6,493
Записей в блоге: 2
30.10.2019, 07:59
Лучший ответ Сообщение было отмечено gogolik как решение

Решение

В качестве дополнения. Я бы только выбрал более подходящее событие.

Две такие вводные дам.
- Можно создать (если нет) файл /local/php_interface/admin_header.php (ну или /bitrix/php_interface/admin_header.php - если по старинке работаете). И этот файл будет подключаться всегда в админке (и только в ней). Там можно вешать свою логику.

- есть событие OnAdminTabControlBegin
обработчик принимает один параметра. И там есть доступ к контенту табов (но это на всякий случай -т.к. вам нужно динамическое скрытие - это точно js). Например контент первого таба: $form->tabs[0]['CONTENT'], а еще $form->tabs[0]['FIELDS'].

Регать так не очень советую. С одной стороны один раз зарегал и все. с Другой стороны потом запаришся искать чего и как работает - модулей сторонних вроде не установлено, а какой то функционал есть. все же кастомные (если не оформляешь модулем) лучше регить в init.php
PHP
1
2
3
use Bitrix\Main\EventManager;
$eventManager = EventManager::getInstance();
$eventManager->addEventHandler("main", 'OnEpilog', 'OnEpilog');
Совсем феншуйно - все обработчики убирать из init.php в классы с автоподключением, чтоб не замусоривать init.php кучей разрозненных функций.
1
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3969 / 2087 / 832
Регистрация: 13.03.2010
Сообщений: 6,886
30.10.2019, 17:03  [ТС]
voral, супер, спасибо. Буду пробовать и проверять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2019, 17:03
Помогаю со студенческими работами здесь

Отображение контента в зависимости от выбора в select
Такая ситуация есть views на ней 3 таблици и select, взависимости от значения select нужно отображать необходимую таблицу, я решил это...

Отображение данных в Label в зависимости от выбора в Combobox
Здравствуйте! У меня такой вопрос: есть БД, в ней таблица со столбцами diametr rezbi d и diametr sverla. В программе БД подключена к...

Отображение списков полей в зависимости от выбранного значения
Здравствуйте. Подскажите пожалуйста куда копать и где посмотреть :) То, что удалось найти на форуме и в сети, немного не то. В...

Отображение той или иной DataGridview в зависимости от выбора в TreeView
Есть у меня на форме элемент TreeView и в нем узлы Node1, Node2 и т.д. Также планирую сделать DataGridview1, DataGridview2 с привязкой к...

Вывод в селекте полей по условию
Добрый день, уважаемые форумчане. Написал запрос, в котором линкую создаваемые временные таблицы. Возник вопрос, как выводить с селекте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru