File: node15.html

package info (click to toggle)
cherrypy 0.10-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 10,324 kB
  • ctags: 1,759
  • sloc: python: 14,411; sh: 6,915; perl: 2,472; makefile: 76
file content (139 lines) | stat: -rw-r--r-- 4,967 bytes parent folder | download
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>