Why ... forms? Forms are easy enough to create when they are simple, like search boxes. But what if you need them to be complex? How about changing the forms based on input by the viewer? This
Why interactive forms?
I am going to use a business project as an example to teach interactive forms. Imagine that we are creating a ordering system for flowers. We would like the customer to be able to order a bouquet of flowers. The customer can choose to have any number of flowers in the bouqet from 1 to 6. For each flower, the customer can choose a type of flower, and there are 3 different kinds of flowers. Now imagine all these options as a regular form. There would be 18 options to choose from, even if you only wanted one flower! This would be ugly! In this tutorial we will learn how we can show and hide form elements depending on the input by the customer. Now let's get started!
Creating the interactive form -HTML
We are going to create a page where you can enter the information for ordering flowers. We've decided on having a drop down menu to select the number of flowers, and then for the number selected, display that number of options to choose the type of flower. We'll start by creating the HTML forms. First we will write the html code for the form.
This will create a menu.
Next we need to create the form where the customer will choose the type of flower they would like. We will let them choose between a red rose, a white rose, and a yellow rose. I am going to use radio buttons for the selection. Here is the code:
For this tutorial, I assume you have a basic knowledge of HTML. All of these pages still need mandatory tags, but I left them out because of the size they would take up. Notice how I made all the options the same name. This is so they are grouped together, and only one option can be choosen.
This is what it will look like: 0 Red 0 White 0 Yellow
Duplicate this code 6 times, for each of the flower. But every time you see "color1", change that to a different name so they are all seperate. I will use "color1", "color2", "color3", and so on.
Now we need to put all of this together into an ordering form. But we need to add something so that the forms can disappear. We will add
tags around each of the flower type selection rows. Enter the following code around each of the groups of options. Make sure that for each one, you label the id tag for the
differently. For example, the first group will start with
will start with
IMPORTANT. When we pass variables onto the script, the only thing that should change between the name of the
tags should be the number. This is because we will use a loop to go through all the numbers. We will pass through the name of the
Choose type of flower 1:
White name="color1" value="yellow">Yellow
Now we have each option groups surrounded by a
tags around the options, and added a submit button. Note: when adding
tags inside a table, make sure they are contained within a
cell. Something like
< d>< r>< able> will not work for the same reason that adding text outside of
cells inside a table doesn't work. If the stuff inside the
tag is showing up, tables may be your problem. To fix this, either don't use tables, or create an entire seperate table for the information inside the
tag. Here is the code:
Flower Order Form
We used css to hide the
We are going to create a function that will show and hide the
cells. There are 3 things we need to pass onto the script: the number of total options, the name prefix for the
tags, and the number of options(to end the loop). Here is the script that I wrote:
Add this code inside the section of your page. Now we have one less step; to call the function from the drop down box. Here is the code to do that: