Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

Демо EBT модули Скачать EBT модули

❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

Демо EPT модули Скачать EPT модули

Scroll

Загрузка произвользых значений в список выбора

22/02/2025, by Гость (не проверено)
Форумы

Есть два списка выбора в новой ноде. Первый связан со словарем таксономии. Как можно сделать, чтобы при выборе значения в первом списке срабатывал запрос (ко второму словарю таксономии) и во второй список загружался результата запроса.


Здравствуйте можете использовать form states как здесь:

http://randyfay.com/states

А можете использовать вот этот модуль:

http://drupal.org/project/hierarchical_select

 


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

 


Это да, тогда вам придется на ajax делать запрос по выбору из первого словаря и выводить второй, мне кажется уроков по этому должно быть предостаточно в интернете.
http://coursesweb.net/ajax/multiple-select-dropdown-list-ajax_t

Ну или загуглите php ajax two drop down.


Может ворос глупый, но всё-таки. Куда вписывать код? В какой файл?


Если через views делать, то нужно переопределить шаблон exposed filters. Если через hook_menu делаете страницу, тогда делайте в своем модуле поиск.


В файле info темы дописал scripts[] = js/js.js далее создал скрипт

jQuery(document).change(function(){
alert('!!!');
});

срабытывает на изменения в страницах. Во всех. Хотелось бы указать именно поле в ноде, для которого должен сработать код.
Как здесь обратится к полю ноды с <select id="edit-field-333-und" class="form-select" name="field_333[und]">


Лучше всего обработчик событий ставить через функцию bind() (или live()), например так:

$("#edit-field-333-und").bind("change", function () {
  // что-нибудь делаем
});

Потому что для bind(), можно добавить дополнительные события, по которым выполнять действия:

$('#edit-field-333-und').bind("change keyup input",function() {
  //делаем что-нибудь здесь
});




 jQuery("#edit-field-333-uid").bind("change", function () {
  alert('777')
});

Никакой реакции поля на изменение. Что может быть не так? Кеш чистил.

Может в друпале 7 есть какие-то особенности?


Да есть, jQuery в режиме noConflict:

https://drupalbook.org/ru/drupal/drupal-i-jquery-urok-1-podklyuchaem-fayl-s-jquery


Спасибо за помощь!

Заработало

 

(function($){
  $(document).ready(function(){
   $("#edit-field-333-und").bind("change", function () {
  alert('777')
});
  });
})(jQuery);

 

Срабатывает именно на изменение значения поля.

 

 


В статье указано, как подключать JS к теме. А если надо несколько файлов, то надо для каждого писать строку scripts[] = js/custom.js в файле темы?