9.1 Form Fundamentals
Forms are comprised of one or more text-input boxes, clickable
buttons, multiple-choice checkboxes, and even pull-down menus and
image maps, all placed inside the <form>
tag. You can have more than one form in a document, and within each
you may also put regular body content, including text and images. The
text is particularly useful for providing form element labels and
prompts and instructions to the users on how to fill out the form.
And, within the various form elements, you can use JavaScript event
handlers for a variety of effects, such as testing and verifying form
contents and calculating a running sum.
A user fills out the various fields in the form, then clicks a
special "Submit" button (or,
sometimes, presses the Enter key) to submit the form to a server. The
browser packages up the user-supplied values and choices and sends
them to a server or to an email address.[1] The server passes the information along
to a supporting program or application that processes the information
and creates a reply, usually in HTML. The reply may simply be a thank
you, or it might prompt the user on how to fill out the form
correctly or to supply missing fields. The server sends the reply to
the browser client, which then presents it to the user. With emailed
forms, the information is simply put into someone's
mailbox; there is no notification of the form being sent.
[1] Some
browsers, Netscape and Internet Explorer in particular, may also
encrypt the information, securing it from credit-card thieves, for
example. However, the encryption facility must be supported on the
server as well: consult the web server documentation for
details.
The server-side, data-processing aspects of forms are not part of the
HTML or XHTML standards; they are defined by the
server's software. While a complete discussion of
server-side forms programming is beyond the scope of this book,
we'd be remiss if we did not include at least a
simple example to get you started. To that purpose,
we've included at the end of this chapter a few
skeletal programs that illustrate some of the common styles of
server-side forms programming.