Модификация модуля Webform - PullRequest
       8

Модификация модуля Webform

1 голос
/ 27 февраля 2010

Мне нужна помощь в изменении модуля Webform , чтобы он мог работать для моего проекта.Я использую Webform прямо сейчас для одной страницы, основных форм, и это прекрасно работает.Что мне нужно, чтобы иметь возможность взять несколько веб-форм и связать их вместе на основе некоторых исходных выборов, которые делает пользователь.Позвольте мне привести пример.

Пользователь отправляется на веб-форму "Общая информация", где он вводит такие вещи, как имя и день рождения.Есть также 3 вопроса с флажками:

«У вас есть дом»

«У вас есть машина»

«У вас есть дети»

Пользователь может выбрать все, некоторые или ни один из параметров.В зависимости от того, что выбрал пользователь, после нажатия кнопки отправки они будут отправлены в «Домашнюю форму», «Автомобильную форму» и / или «Детскую форму».

Когда они закончат заполнениеИз всех форм администратору отправляется электронное письмо, как и сейчас.Информация не должна храниться на веб-сайте в базе данных, достаточно электронной почты.

Итак, есть предложения, как это сделать?Будет ли что-то еще, кроме Webform, более подходящим?Или (если мне очень повезло) уже существует модуль, который делает то, что мне нужно?

Ответы [ 3 ]

1 голос
/ 27 февраля 2010

Почему бы просто не показать или скрыть элементы формы по мере необходимости, а не перенаправить на другие, потенциально множественные последующие, формы?

Использование следующего (x) HTML:

<form enctype="form/multipart" method="post" action="">

    <fieldset>

        <legend>Cars:</legend>

        <label for="cars">Do you have one, or more, cars?</label><input name="cars" id="cars" class="test" type="checkbox" />
        <fieldset class="subSection" id="cars">
            <input type="radio" name="numCars" value="1" />One
            <input type="radio" name="numCars" value="2" />Two
            <input type="radio" name="numCars" value="3" />Three
        </fieldset>

    </fieldset>

    <fieldset>

        <legend>Children:</legend>

        <label for="kids">Do you have one, or more, children</label><input name="kids" id="kids" class="test" type="checkbox" />
        <fieldset class="subSection" id="kids">
            <input type="radio" name="numKids" value="1" />One
            <input type="radio" name="numKids" value="2" />Two
            <input type="radio" name="numKids" value="3" />Three
        </fieldset>

    </fieldset>

    <fieldset>

        <legend>Houses:</legend>

        <label for="houses">Do you have one, or more, houses</label><input name="houses" id="houses" class="test" type="checkbox" />
        <fieldset class="subSection" id="houses">
            <input type="radio" name="numHouses" value="1" />One
            <input type="radio" name="numHouses" value="2" />Two
            <input type="radio" name="numHouses" value="3" />Three
        </fieldset>

    </fieldset>

</form>

И jQuery (который можно привести в порядок, но я сам все еще новичок в этом ... так что, боюсь, только "доказательство концепции"):

$(document).ready(
    function() {
        // hide the sub-sections
        $('fieldset.subSection').hide();

        // show subsections onClick of the .test checkboxes
        $('input.test').click(
            function() {
                $(this).next('fieldset.subSection').slideToggle('slow');
            }
        )
    }
);

Демонстрационная версия в данный момент находится по адресу: http://davidrhysthomas.co.uk/so/subForms.html

0 голосов
/ 27 февраля 2010

Условные поля - это функция будущей версии 3 веб-формы. См. Соответствующую проблему и бета-версию , выпущенную две недели назад.

0 голосов
/ 27 февраля 2010

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

...