Webform is the module for making forms and collecting information from users in Drupal.
After a submission, you can send users a thank-you email as well as sending a notification to administrators. Results can be exported into Excel or other spreadsheet applications. Webform also provides some basic statistical review and has an extensive API for expanding its features.
If you need to build a lot of customized, one-off forms, Webform is a more suitable solution than creating content types and using the CCK or Field modules.
Download the Webform Module
Go to this url http://drupal.org/project/webform, and download the Webform Module.
There are some additional modules that add some functionality and make some operations easier. You can download the optional modules as well. To keep things simple, we'll use the basic module and show you how to create a simple survey of registered users.
- Options Element Module - http://drupal.org/project/options_element
- Select (or other) - http://drupal.org/project/select_or_other
- Date - http://drupal.org/project/date
- Mollom - http://drupal.org/project/mollom OR Catpcha - http://drupal.org/project/captcha
- Webform Validation - http://drupal.org/project/webform_validation
- Arrange Fields module -http://drupal.org/project/arrange_fields
Download the correct version. They may have changed since we wrote this, so be sure to check.
Install the Webform Module
Enable the module
Go to the Modules page and scroll down to Webform and click the check box. Click Save configuration.
Access the form fields
Go to Structure > Content types
Scroll down to Webform and look the right for the links to edit and manage fields and the display.
If you are familiar with CCK in Drupal 6, or Fields, which is now part of D7 core, you will see a familiar interface for adding and managing new fields.
This is not the place where you will be creating forms. Editing here is exactly the same as editing Fields in Content Types, which is a way to make fields available to this content type. From here you can edit fields, manage existing fields, the display and the comment functions by clicking on the appropriate tabs. But creating the actual form is done by adding content in the same way you would add an article.
You won't need to do much here but review all your choices and see if there is anything you feel you must change. The default values will work for the purposes of our demonstration. After you create your first form and understand the module you might want to revisit the configuration.
Now that the module is installed and the configuration is checked, you can begin building your survey form.
Create your first webform by adding it as content
Go to Content > Add Content > Webform
Don't get confused over Poll vs Webform. We are creating a form with various types of questions, not taking a Poll. Poll is another content type that is similar, but restricted to multiple selection fields and gathering the statistics on the responses. Webform is a form submission module, and collects the actual responses and stores them in a table for you to review. You can collect almost any type of data using Webform.
Create the basic form details
Give it a title and make the decisions on all basic options. Save this with the save button at the bottom of the page.
Add form components
Now you will see the controls for creating and editing the rest of the form elements. Start adding Form components on the WEBFORM tab.
Give the component a label, choose textfield and then click Add.
We're surveying registered users, so we are going to automatically fill in their username. A name is basic text field, but we want our registered users to show up on the textfield, so we're going to make use of Tokens. Using Tokens is just an optional feature.
Enter the token %username in the Default value field.
This will pull the username from the data base and fill it in automatically.
If you don't see the TOKEN VALUES, you probably don't have the Token module installed. You only need Token if you want to fill in the default values taken from the data base. If this is going to be a blank field that the user will fill in when they visit the page, you can just leave the Default value blank. I used Token here to illustrate the possibilities available to you.
If you need the Token module you can download it here http://drupal.org/project/token
Scroll down the rest of the page and make any configuration selections you need then click Save Component at the very bottom of the page.
Create a "Select" field
Fill in a new label and choose the Select options type from the drop down. Click Add and complete the options on the next screen
Create the list of options
Go to Options and create Key Value Pairs. These pairs consist of a machine readable key and a plain language value separated by a "|" - This character is called a "pipe" and you can find it by holding shift while pressing the backslash key "\" key on most keyboards.
Key-value pairs MUST be specified as "safe_key|Some readable option". Use of only alphanumeric characters and underscores is recommended in keys. One option per line.
Save the Component.
Repeat this step for the flavor of the jelly and type of peanut butter.
When you are creating lists, the default type is radio buttons. If you want check boxes or a listbox the choices are farther down on the page. You can also set the field as mandatory or optional. If you click the "Multiple" check box at the top, the list will appear as check boxes. If you choose "Listbox" under DISPLAY you will have a drop down box. Selecting "Multiple" and "Listbox" will allow users to make multiple selections from a dropdown box.
When you create the Jelly type, add Other as a choice. Then add a text field so people can write in their suggestions.
Add a Text field
You can add a text field, or a textarea. A text field is for short entries like names. A textarea will be a large area for entering more extensive written responses.
Other field types you might want to add for your purposes are an E-Mail field or Date Field. You can choose thees types from the dropdown "Type" box.
You can choose other field types from the Type drop down.
Add a preset field type
There is a convenience feature you may want to use. You can create pre-built option lists and add them to your form. The module comes with several default lists. Add one for States if you want to see how this looks on your form. Label it State and then choose the Select Options type and when you get to the next screen, make your selection.
Choose US States from the drop down.
Check your form
At this point your form will look similar to this. You can change the locations of the descriptions by clicking the WEBFORM tab and editing each item and making different configuration selections. Once you have the form ordered the way you like it and all the questions and fields correct. Go back to the WEBFORM tab EMAIL tab and set the EMAIL options.
You can use drag and drop to move form elements to different positions.
Configure the E-Mail options.
Go back to the WEBFORM tab and look for the E-mails sub-tab. Fill in an address and click Add.
Set the email address if you want to receive an email when the form is submitted. You can add multiples.
There are lots of choices to make. Be sure you check every one of them so they are correct for your form. Be sure to save the changes.
Configure the Form Settings
From the WEBFORM tab Click the Form Settings sub-tab at the top of the page. Check and modify settings as needed. Save your changes.
Now you can publish your form exactly like you would publish any other content item on your site. After you've had a chance to collect submissions, you will see the results when you are logged in as a user with the correct permissions.
Click Content > Find Content and select the form from the content list and you can find the results tab. This will allow you to see the collection of data you have as well as give you some simple analysis.