AHAH, добавление новых полей.
Прислано: jeehadina
пн, 15/06/2009 - 03:47
Уважаемые форумчане, есть необходимость создания типа материала с возможностью добавлять AHAH'ом новые поля.
Тип материала "Семья". В семью нужно добавлять членов (их имена), а их может быть от одного до бесконечности.
В принципе задача и способ решения ясны. poll.module в ядре друпала имеет подобный функционал.
Но в целях повышения квалификации :) хотелось бы поизучать исходный код модулей с подобным функционалом.
ССК не интересует :)
Заранее благодарен!
- jeehadina's blog
- Для комментирования войдите или зарегистрируйтесь
. poll.module в ядре друпала имеет подобный функционал.
а тупо подсмотреть как это в poll сделано?
сам кстати не пользоался еще функционалом 6ки. но в одном проекте у меня динамически строящихся форм валом.
Как примитивный прием вот - функция которая дергается через JSON для вытягивания компонента формы с доп. html кодом
<?php
Drupal.insti_attach.appendtoform = function (data){
Drupal.insti_attach.autocomplete_item.input.value = '';
itemid = '#insti-attach-node-list-autocomplete-' + data.nid;
if($(itemid).get(0) ){ // такой уже есть..
}else $('div.insti-attach-node-list-autocomplete').prepend(
'<div class="insti-attach-node-list-autocomplete-item" id="insti-attach-node-list-autocomplete-'
+ data.nid + '">' + data.html + '</div>'
);
}
?>а потом когда оператор выбрал заведение оно добавляется в фомочку. происходит это при вызове
<?php
$.getJSON(Drupal.insti_attach.nodeinfo_url + '/' + node.autocompleteValue, Drupal.insti_attach.appendtoform);
?>Drupal.insti_attach.nodeinfo_url - заранее заданные путь до моего отработчика меню который выдает JSON - массив с описанием компонента.
Делалось для особо извращенного autocomplete, drupal 5.
- Для комментирования войдите или зарегистрируйтесь
спасибо за ответ.
да, конечено poll.module я изучил от и до. хотелось бы еще примеров со здравым смыслом.
не хочется выдумать велосипед заново. почему и подхожу к подготовке серьезно.
з.ы. тема еще на закрыта :)
- Для комментирования войдите или зарегистрируйтесь
Если я правильно понял нужно просто создавать новые поля. Обычно используется такая конструкция:
<input type="text" name="family[]" />
На стороне сервера обрбатывается массив
<?php
foreach ($_POST['family'][] as $member) {
echo $member;
}
?>- Для комментирования войдите или зарегистрируйтесь
попробуйте сохранить форму изначально допустив ошибку. потом еще раз сохранить.
результат вас поразит
- Для комментирования войдите или зарегистрируйтесь


Комментарии