详解表单以及表单提交

今天在公司做项目的时候,用到了表单,虽然经常用表单提交,但是没有具体了解表单的结构和表单提交的具体的方式。今天借此机会,深入了解一下表单的知识。

一、什么是表单?

  表单:通俗的讲就是代表格的单子;主要的功能是负责数据采集。

二、表单的组成

通常一个表单有三个部分组成:

 (1)、表单标签:包含了处理表单数据所用的CGI[Common Gateway Interface](公共网关接口)程序的URL以及数据提交到服务器的方法。

 (2)、表单域:主要包含表单控件如:文本框、密码框、隐藏域、下拉列表框、单选框、复选框以及文件上传框。

 (3)、表单按钮:包括提交、复位、一般按钮;用户将数据传送到服务器上的CGI脚本或取消输入。

 [1]、表单标签<form></form>

 功能:用于申明表单。定义采集数据的范围,也就是<form></form>里面的包含的数据提交到服务器或电子邮件中。

语法:<form action="URL" method="GET|POST" enctype="MIME" target="...."></form>

属性解释如下:

action=url指定地址来处理表单的格式。

method=GET|POST  明确指明提交表单的HTTP方法

POST方法在表单的主干包含名称/值,无需包含于action特性的URL中

GET方法把名称/值对加在action的URL后面,并且把新的URL送至服务器

enctype=cdata指明用来把表单提交给服务器时的互联网媒体形式

target="..."指定提交的结果文档显示的位置:

_blank :在一个新的,无名浏览器窗口调入指定的文档

_self:在指向这个目标的无素的相同的框架中调入文档

_parent:把文档调入当前框架的直接的父frameset框中

_top:把文档调入原来的最顶部的浏览器窗口中

 

当表单向服务器提交值之后,服务器通过Request对象获取表单,前提是表单域中需要包含name字段。

表单提交方式为post:则使用Request.Form("表单元素名称[name]")fangwen

表单提交方式为get:则使用Request.QueryString("表单元素名称[name]")

注:以上两种提交方式都可以简写成Request["表单元素名称"],QueryString优先

注:在同一表单中可能包括共用同一名称的多个输入的字段,如果你使用Request.For,或Request.QueryString集合来访问一个字段名称,将包含所有用逗号(,)隔开的给定的字段同名字段的所有值返回一个字符串。

如果要获取同一name多个输入的值组成的字符串中,要想获得其中一个name对应某个输入的值可以用getValues,其提供对每个值的访问,然后使用数字元素。具体的代码如下:

View Code
 1  <form id="form1" action="Default.aspx" runat="server" method="post">
2 <!--同一name多个输入-->
3 <input type="text" name="text" /><br/>
4 <input type="text" name="text" /><br/>
5 <select name="select">
6 <option value="1">1</option>
7 <option value="2">2</option>
8 </select><br/>
9 <input type="radio" name="radio" value="radio1"/>
10 <input type="radio" name="radio" value="radio2"/>
11 <br/>
12 <input type="submit" value="表单提交"/>
13
14 </form>

.cs文件如下:

View Code
1  if (IsPostBack)
2 {
3 Response.Write(Request.Form["text"]+"<br/>");
4 Response.Write(Request.Form["select"] + "<br/>");
5 Response.Write(Request.Form["radio"] + "<br/>");
6 Response.Write(Request.Form.GetValues("text")[0]);
7 }

通常情况下我们就完成了表单的提交和对表单的取值,在通常的项目中往往需要对表单验证,比如用户登录,如果用户登录错误,表单里面的值就会消失.这是因为asp.net的状态管理机制。

我们需要保存input 文本的值需要做以下的内容:

View Code
 1   <form id="form1" action="Default.aspx" runat="server" method="post">
2 <!--同一name多个输入-->
3 <input type="text" name="text" value="<%=Request.Form.GetValues("text")[0] %>" /><br/>
4 <input type="text" name="text" value="<%=Request.Form.GetValues("text")[1] %>"/><br/>
5 <select name="select">
6 <option value="1">1</option>
7 <option value="2">2</option>
8 </select><br/>
9 <input type="radio" name="radio" value="radio1"/>
10 <input type="radio" name="radio" value="radio2"/>
11 <br/>
12 <input type="submit" value="表单提交"/>
13
14 </form>

 





posted @ 2012-03-14 00:04  That's me  阅读(946)  评论(0编辑  收藏  举报