Показывать подтаблицу по условию
#1
Отправлено 11 Апрель 2012 - 07:32
Есть основная таблица "Договор" и 2 связанные с ней таблицы "Список оборудования" и "Список Услуг".
Необходимо, чтобы при выборе в поле "Тип договора" таблицы "Договор" внизу отображалась одна либо другая таблица.
Пример: если выбрали в поле "Тип договора" - "Услуги", то внизу появлялась вкладка с таблицей "Список услуг" куда мы добавляем услуги по этому договору.
Если выбираем в поле "Тип договора" - "Оборудование", то внизу вместо таблицы "Список услуг" появляется таблица "Список оборудования".
Можно ли так сделать? И как?
P.S. На данный момент в голову приходит только создание двух разных таблиц "Договор оборудование" и "Договор услуги". Но это совсем не дело. В последующем Типов договора станет куда больше.
P.P.S. Второй вариант это оставление нескольких вкладок внизу. Но тогда будет путаница что именно заполнять. Куда логичнее скрывать не нужные таблицы с помощью JavaScript, но одно дело скрыть поля в одной таблице, а совсем другое всю подтаблицу целиком.
#2 Гость_Roman_*
Отправлено 11 Апрель 2012 - 08:23
function onchange_111() { if (document.getElementById("value111").value == "Услуги") { document.getElementById('tab_222').style.display = ''; switch_subtable(222); document.getElementById('tab_333').style.display = 'none'; } else { document.getElementById('tab_333').style.display = ''; switch_subtable(333); document.getElementById('tab_222').style.display = 'none'; } } {literal} $(document).ready(function() { onchange_111(); }); {/literal} addHandler(document.getElementById("value111"), "onchange", onchange_111);
#3
Отправлено 11 Апрель 2012 - 08:40
#4 Гость_Roman_*
Отправлено 11 Апрель 2012 - 08:48
#5
Отправлено 11 Апрель 2012 - 09:25
#6 Гость_Roman_*
Отправлено 11 Апрель 2012 - 09:26
#7
Отправлено 11 Апрель 2012 - 12:18
#8 Гость_Roman_*
Отправлено 11 Апрель 2012 - 12:35
Чтобы скрыть обе кнопки воспользуйтесь следующим кодом:
document.getElementById("user_button_div_15").style.display = 'none'; document.getElementById("e_user_button_div_15").style.display = 'none';Естесственно, вместо 15 поставив id Вашего доп. действия и заключив эти строчки в условие, по которому они будут скрыватся.
ВНИМАНИЕ! На настоящий момент настоятельно рекомендуется использовать правила для скрытия доп.действий.
Сообщение отредактировал CbCoder: 21 Сентябрь 2016 - 15:46
#9
Отправлено 11 Апрель 2012 - 14:37
Аналогичным образом можно управлять любыми элементами?
Насколько я понимаю у Вас на каждый элемент страницы просмотра/редактирования есть свой идентификатор (ID), которым можно управлять через JS. Или есть ограничения?
И как посмотреть эти идентификаторы?
#10 Гость_Roman_*
Отправлено 11 Апрель 2012 - 14:45
А ещё проще, чтобы не искать нужное место, можно воспользоваться инструментами браузеров. Почти во всех современных браузерах при клике на правой кнопке мыши можно найти пункт меню типа "Анализировать элемент" или "Проинспектировать элемент". При этом откроется исходный код страницы, но уже будет выделен выбранный элемент. В Mozilla Firefox для этих целей необходимо установить дополнение Firebug.
#11
Отправлено 13 Апрель 2012 - 02:49
Roman (11 Апрель 2012 - 12:35) писал:
Чтобы скрыть обе кнопки воспользуйтесь следующим кодом:
document.getElementById("user_button_div_15").style.display = 'none'; document.getElementById("e_user_button_div_15").style.display = 'none';Естесственно, вместо 15 поставив id Вашего доп. действия и заключив эти строчки в условие, по которому они будут скрыватся.
#12 Гость_Roman_*
Отправлено 13 Апрель 2012 - 08:00
{literal} $(document).ready(function(){ document.getElementById("user_button_div_15").style.display = 'none'; document.getElementById("e_user_button_div_15").style.display = 'none'; }); {/literal}
Такой Javascript можно добавить в любое поле.
#13
Отправлено 13 Апрель 2012 - 12:26
#14
Отправлено 13 Апрель 2012 - 13:51
Roman (11 Апрель 2012 - 08:23) писал:
function onchange_111() { if (document.getElementById("value111").value == "Услуги") { document.getElementById('tab_222').style.display = ''; switch_subtable(222); document.getElementById('tab_333').style.display = 'none'; } else { document.getElementById('tab_333').style.display = ''; switch_subtable(333); document.getElementById('tab_222').style.display = 'none'; } } {literal} $(document).ready(function() { onchange_111(); }); {/literal} addHandler(document.getElementById("value111"), "onchange", onchange_111);
document.getElementById('sub_ХХХ').style.display = 'none';
А как скрыть эту подтаблицу и в разделе "Связанные таблицы"? Смотрел по исходнику - ID у них нет. Через отключение доступа - не вариант, доступ должен быть.
Сообщение отредактировал arsenal: 13 Апрель 2012 - 13:52
#15 Гость_Roman_*
Отправлено 13 Апрель 2012 - 14:02
document.getElementById('sub_ХХХ').style.display = 'none';
Скрыть связанные таблицы в списке можно с помощью JQuery. Поскольку код довольно специфичный и ёмкий, описывать его здесь не буду. Могу лишь сказать, что надо выделить все элементы списка через какой-нибудь селектор и пройтись по ним циклом each. Если по каким-то условиям элемент подходит, то скрываем его.
#16
Отправлено 13 Апрель 2012 - 14:55
Можно ли как то сделать чтобы вкладка отображалась сразу корректно?
#17
Отправлено 13 Апрель 2012 - 15:02
#18 Гость_Roman_*
Отправлено 14 Апрель 2012 - 11:03
etpu (13 Апрель 2012 - 14:55) писал:
Можно ли как то сделать чтобы вкладка отображалась сразу корректно?
smart (13 Апрель 2012 - 15:02) писал:
#19
Отправлено 17 Май 2012 - 17:57
function onchange_2956() { if (document.getElementById("value2956").value == "Есть вопрос") { document.getElementById('tab_194').style.display = ''; // switch_subtable(194); // document.getElementById('tab_333').style.display = 'none'; } else { // document.getElementById('tab_333').style.display = ''; // switch_subtable(333); document.getElementById('tab_194').style.display = 'none'; } } {literal} $(document).ready(function() { onchange_2956(); }); {/literal} addHandler(document.getElementById("value2956"), "onchange", onchange_2956);Почему-то у меня пропало название подтаблицы в режиме просмотра записи основной таблицы, но записи подтаблицы и кнопка "добавить запись" остались? почему?
код такой:
#20 Гость_Roman_*
Отправлено 18 Май 2012 - 08:56
function onchange_2956() { if (document.getElementById("value2956").value == "Есть вопрос") { document.getElementById('tab_194').style.display = ''; document.getElementById('sub_194').style.display = ''; } else { document.getElementById('tab_194').style.display = 'none'; document.getElementById('sub_194').style.display = 'none'; } } {literal} $(document).ready(function() { onchange_2956(); }); {/literal} addHandler(document.getElementById("value2956"), "onchange", onchange_2956);Такой код должен быть корректен для Вашего случая.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных