Динамические формы - PullRequest
       10

Динамические формы

1 голос
/ 31 мая 2011

Я хочу создать скрипт, который делает следующее:

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

Пример:

Флажок перед надписью «Перезвони мне», который при включении показывает еще 2 поля (раскрывающийся список со всеми доступными странами и текстовое поле для их номера телефона)


Другой пример:

(допустим, мы поддерживаем конечных пользователей)

Раскрывающееся меню, в котором пользователь может выбрать тему, которую он хочет поддержать (т. Е. Аппаратное и программное обеспечение). Затем, когда пользователь выбирает тему, он покажет дополнительное поле с дополнительными темами (например, когда пользователь выбирает оборудование, он получает телефон, компьютер и т. Д.), В котором, в свою очередь, отображаются дополнительные поля для серийного номера, возможно ОС. и пр.


Я думаю, что смогу понять, как это сделать в PHP и SQL, мне просто нужно немного подтолкнуть в правильном направлении с HTML и jQuery: AJAX Надеюсь, я достаточно ясно понимаю, что я хочу сделать от сценария ..

Заранее спасибо! :)

Ответы [ 3 ]

3 голосов
/ 31 мая 2011

Предполагая некоторую HTML-структуру, подобную этой:

<div id="question-1" class="top-question">
    What do you want?<br>
    <select>
        <option value='thing'>thing</option>
        <option value='item'>item</option>
    </select>
    <div id="question-1a" class="sub-question">
        How many of them?<br>
        <select>
            <option value='5'>five</option>
            <option value='10'>ten</option>
        </select>
    </div>
</div>

И используя библиотеку jQuery (которая в таких случаях облегчает жизнь), вы можете сделать это:

$('.sub-question').hide()
$('.top-question').bind('change',function(){
    $('.sub-question').show()
})

Как показано здесь: http://jsfiddle.net/xtUk6/

Аякс здесь не нужен. Концепция заключается в том, что у вас есть все поля формы на странице, только визуально удаленные. Затем каждый вопрос имеет свой уникальный идентификатор, который можно идентифицировать, когда форма отправляется обратно на сервер и обрабатывается там в вашем случае с помощью php.

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

1 голос
/ 31 мая 2011

Вам не нужно использовать ajax для этого, то, что вы могли бы сделать, это при изменении выпадающего списка, изменить свойство CSS div, содержащего поля, на non display:none;.

0 голосов
/ 31 мая 2011

Вы также можете сделать это с помощью методов $ (). Show () & $ (). Hide ().Вам нужно будет поместить селектор css в скобки $ () для элементов, которые вы хотите показать или скрыть.Это если вы хотите использовать jQuery вместо того, чтобы просто использовать отображение: ни один из них, как предложено выше.

...