2.9 Lists, Searchable Documents, and Forms
Thought we'd exhausted text elements? Headers,
paragraphs, and line breaks are just the rudimentary
text-organizational elements of a document. The languages also
provide several advanced text-based structures, including three types
of lists, "searchable" documents,
and forms. Searchable documents and forms go beyond text formatting,
too; they are a way to interact with your readers. Forms let users
enter text and click checkboxes and radio buttons to select
particular items and then send that information back to the server.
Once received, a special server application processes the
form's information and responds accordingly; e.g.,
filling a product order or collecting data for a user
survey.[10]
[10] The server-side programming required for
processing forms is beyond the scope of this book. We give some basic
guidelines in the appropriate chapters, but please consult the server
documentation and your server administrator for details.
The syntax for these special features and their various attributes
can get rather complicated; they're not quick-start
grist. We'll mention them here, but we urge you to
read on for details in later chapters.
2.9.1 Unordered, Ordered, and Definition Lists
The
three types of lists match those we are most familiar with:
unordered, ordered, and definition lists. An unordered list one
in which the order of items is not important, such as a laundry or
grocery list gets bounded by <ul> and
</ul> tags. Each item in the list, usually a
word or short phrase, is marked by the <li>
(list-item) tag and, particularly with XHTML, the
</li> end tag. When rendered, the list item
typically appears indented from the left margin and preceded by a
bullet symbol. [<ul>] [<li>]
Ordered lists, bounded by the
<ol> and </ol>
tags, are identical in format to unordered ones, including the
<li> tag (and </li>
end tag with XHTML) for marking list items. However, the order of
items is important equipment assembly steps, for instance. The
browser accordingly displays each item in the list preceded by an
ascending number. [<ol>]
Definition lists are slightly more
complicated than unordered and ordered lists. Within a definition
list's enclosing <dl> and
</dl> tags, each list item has two parts,
each with a special tag: a short name or title, contained within a
<dt> tag, followed by its corresponding
value or definition, denoted by the <dd> tag
(XHTML includes respective end tags). When rendered, the browser
usually puts the item name on a separate line (although not
indented), and the definition, which may include several paragraphs,
indented below it. [<dl>]
The various types of lists may contain nearly any type of content
normally allowed in the body of the document. So you can organize
your collection of digitized family photographs into an ordered list,
for example, or put them into a definition list complete with text
annotations. The markup language standards even let you put lists
inside of lists (nesting), opening up a wealth of interesting
combinations.
2.9.2 Searchable Documents
The simplest type of user interaction
provided by HTML and XHTML is the searchable
document. You create a searchable document by including an
<isindex> tag in its header or body. The
browser automatically provides some way for the user to type one or
more words into a text input box and to pass those keywords to a
related processing application on the server.<isindex>]
[11] Few
authors have used the tag, apparently. The
<isindex> tag has been
"deprecated" in HTML Version
4.0 sent out to pasture, so to speak, but not yet laid to rest.
The processing application on the server uses those keywords to do
some special task, such as perform a database search or match the
keywords against an authentication list to allow the user special
access to some other part of your document collection.
2.9.3 Forms
Obviously,
searchable documents are very limited one per document and only
one user-input element. Fortunately, HTML and XHTML provide better,
more extensive support for collecting user input through
forms.
You can create one or more special form sections in your document,
bounded with the <form> and
</form> tags. Inside the form, you may put
predefined as well as customized text-input boxes allowing for both
single and multiline input. You may also insert checkboxes and radio
buttons for single- and multiple-choice selections and special
buttons that work to reset the form or send its contents to the
server. Users fill out the form at their leisure, perhaps after
reading the rest of the document, and click a special send button
that makes the browser send the form's data to the
server. A special server-side program you provide then processes the
form and responds accordingly, perhaps by requesting more information
from the user, modifying subsequent documents the server sends to the
user, and so on. [<form>]
Forms provide everything you might expect of an automated form,
including input area labels, integrated contents for instructions,
default input values, and so on except automatic input
verification; your server-side program or client-side applets need to
perform that function.