1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>1.5.1 Introduction</title>
<META NAME="description" CONTENT="1.5.1 Introduction">
<META NAME="keywords" CONTENT="lib">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="STYLESHEET" href="lib.css" type='text/css'>
<link rel="first" href="lib.html">
<link rel="contents" href="contents.html" title="Contents">
<LINK REL="next" HREF="node16.html">
<LINK REL="previous" href="module-Form.html">
<LINK REL="up" href="module-Form.html">
<LINK REL="next" HREF="node16.html">
<meta name='aesop' content='information'>
</head>
<body>
<DIV CLASS="navigation">
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><A href="module-Form.html"><img src="../icons/previous.gif"
border="0" height="32"
alt="Previous Page" width="32"></A></td>
<td><A href="module-Form.html"><img src="../icons/up.gif"
border="0" height="32"
alt="Up One Level" width="32"></A></td>
<td><A HREF="node16.html"><img src="../icons/next.gif"
border="0" height="32"
alt="Next Page" width="32"></A></td>
<td align="center" width="100%">CherryPy Standard Library Reference</td>
<td><A href="contents.html"><img src="../icons/contents.gif"
border="0" height="32"
alt="Contents" width="32"></A></td>
<td><img src="../icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
<td><img src="../icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
</tr></table>
<b class="navlabel">Previous:</b> <a class="sectref" href="module-Form.html">1.5 Form </A>
<b class="navlabel">Up:</b> <a class="sectref" href="module-Form.html">1.5 Form </A>
<b class="navlabel">Next:</b> <a class="sectref" HREF="node16.html">1.5.2 Module</A>
<br><hr>
</DIV>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION003510000000000000000">
1.5.1 Introduction</A>
</H2>
Handling complicated forms can really be a pain sometimes, especially if you want to handle user errors.
<P>
The Form module can save you a lot of time and trouble, once you've learned how to use it.
<P>
Most of the time, you'll want this:
<UL>
<LI>Your form has all sorts of fields: text fields, textareas, checkboxes, radio buttons, ...
</LI>
<LI>By default, some fields are empty, and some have default values.
</LI>
<LI>Some fields are mandatory, some aren't. Some fields can only have certain values (ex: birthdate, price, ...)
</LI>
</UL>
<P>
And you'll probably want your form to behave like this:
<UL>
<LI>When the form is first displayed, all fields are either empty or they have a default value
</LI>
<LI>The user fills the form in and hit the submit button
</LI>
<LI>(At this point, you may want to use a few lines of javascript to catch trivial errors. But if your
form is really big, you'll probably want to catch these errors on the server side ...)
</LI>
<LI>The data is sent to the server, which analyzes it
</LI>
<LI>If the data is correct (no missing field, no wrong value, ...), everything continues normally
</LI>
<LI>In case some fields have incorrect values, you'll probably want the following:
<UL>
<LI>Redisplay the form, but keep all values that the user entered (that's the painful part ...)
</LI>
<LI>Display a message that stands out at the top of the form to notify the user that some fields need to be changed
</LI>
<LI>Display a message next to each field that has an error
</LI>
</UL>
</LI>
</UL>
<P>
We'll see how the Form module can help you do that ...
<P>
<DIV CLASS="navigation">
<p><hr>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><A href="module-Form.html"><img src="../icons/previous.gif"
border="0" height="32"
alt="Previous Page" width="32"></A></td>
<td><A href="module-Form.html"><img src="../icons/up.gif"
border="0" height="32"
alt="Up One Level" width="32"></A></td>
<td><A HREF="node16.html"><img src="../icons/next.gif"
border="0" height="32"
alt="Next Page" width="32"></A></td>
<td align="center" width="100%">CherryPy Standard Library Reference</td>
<td><A href="contents.html"><img src="../icons/contents.gif"
border="0" height="32"
alt="Contents" width="32"></A></td>
<td><img src="../icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
<td><img src="../icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
</tr></table>
<b class="navlabel">Previous:</b> <a class="sectref" href="module-Form.html">1.5 Form </A>
<b class="navlabel">Up:</b> <a class="sectref" href="module-Form.html">1.5 Form </A>
<b class="navlabel">Next:</b> <a class="sectref" HREF="node16.html">1.5.2 Module</A>
<hr>
<span class="release-info">Release 0.10, documentation updated on 19 March 2004.</span>
</DIV>
<!--End of Navigation Panel-->
<ADDRESS>
See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
</ADDRESS>
</BODY>
</HTML>
|