网络编程
位置:首页>> 网络编程>> Asp编程>> ASP中使用Form和QueryString集合(4)

ASP中使用Form和QueryString集合(4)

  发布时间:2007-09-14 10:43:00 

标签:form,QueryString,Request

 d) HTML提交和图像控件
  
    复选框和单选框是布尔型控件的例子,选中或选择返回的为“on”,不像文本框和大多数其他的HTML控件,浏览器不包含没有选中或没有选择的控件的值。
  
    还有另外一种常用的布尔型控件,称为HTML按钮。如<INPUT TYPE=”SUBMIT”>、<INPUT TYPE=”RESET”>、<INPUT TYPE=”IMAGE”>、<INPUT TYPE=”BUTTON”>和<BUTTON>...</BUTTON>类型。
  
    BUTTON类型的控件不返回任何值,因其对窗体没有直接的影响。即使使用用来调用窗体的Submit方法,浏览器在任何请求中将不包含BUTTON类型控件的值。同样,一个<INPUT TYPE=”RESET”>按钮的值也决不会发往服务器。
  
    然而,输入按钮控件SUBMIT和IMAGE类型实际提交窗体给服务器,其VALUE属性包含窗体的其他控件的值(只要在HTML定义中包含一个NAME属性)。例如,这个窗体可能是向导类型Web应用程序的一部分,允许用户一步步进行或取消进程:


 <FORM ACTION=”show_request.asp” METHOD=”POST”> 
  <INPUT TYPE=”SUBMIT” NAME=”btnSubmit” VALUE=”Next”> 
  <INPUT TYPE=”SUBMIT” NAME=”btnSubmit” VALUE=”Previous”> 
  <INPUT TYPE=”SUBIMT” NAME=”btnSubmit” VALUE=”Cancel”> 
  </FORM> 


在一个窗体中,可以包括多个SUBMIT按钮。在这种情况下,应该给每一个按钮唯一的VALUE属性,如上所示。当一个窗体被提交时,遍历Request.Form集合的值,将产生一个值,这个值依赖于按下哪个按钮用于提交这个窗体。假如用户按下的“Previous”按钮,将得到:
  
  btnSubmit = Previous
  
    因此,可查询Request.Form集合来决定下一个显示的页面,例如:


Select Case Request.Form(“btnSubmit”) 
  Case “Next” 
  Response.Redirect “page_3.asp” 
  Case “Previous” 
  Response.Redirect “page_1.asp” 
  Case “Cancel” 
  Response.Redirect “main_menu.asp” 
  End Select 



 同时,也可根据需要对每个按钮使用不同的NAME属性。且选择其值包含在Form集合中的控件名称。在控件没有一个完整的标记而是随后跟着较长的文本标签的情况下,极为有用,如下图所示。
  
    此屏幕上的界面由下列代码产生:


<FORM ACTION=”show_request.asp” METHOD=”POST”> 
  <B>What do you want to do now?</B><P> 
  <INPUT TYPE=”SUBMIT” NAME=”btnNext” VALUE= ”> Go on the next page<P> 
  <INPUT TYPE=”SUBMIT” NAME=”btnPrevious” Value=” ”> GO back to the previous page<P> 
  <INPUT TYPE=”SUBMIT” NAME=”btnCancel” VALUE=” ”> Cancel and go back to the main menu page<P> 
  </FORM> 


 在ASP页面中,接收到数据后,可以检查按扭名称提供的值来判断按下的是哪个按钮。


If Len(Request.Form(“btnNext”)) Then Response.Redirect “page_3.asp” 
  If Len(Request.Form(“btnPrevious”)) Then Response.Redirect “page_1.asp” 
  If Len(Request.Form(“btnCancel”)) Then Response.Redirect “main_menu.asp” 


这个工作是查询一个键上的ASP集合,如果不存在则返回一个空的字符串。换句话说,如果第二个按钮(previous页)按下,则Request.Form(“btnNext”)的值是一个空字符串,则其长度为零而不至于产生一个错误。当第二个按钮按下时,则在Form集合中这个条目的值Request.Form(“btnPrevious”),将是“ ”其长度大于零。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com