摘要:Request.Form與Request.QueryString的比較與使用說明
Request.Form與Request.QueryString的比較與使用說明
當有資料要傳給某個asp來處理時,有幾個方式可以運作
1.Session
2.Form Submit
3.QueryString
Session:可以在IIS中的專案(虛擬目錄)下運作,並且可以跨有專案下的所有asp,不過這個不在我們這篇的討論範圍
我們還是來看一下我們這篇的討論範圍QueryString與Form Submit吧
=================================================================================
---------------------------------------------------------------------------------
QueryString:
使用QueryString的方式其實是最簡單的。
他的方法就是在超鏈結啟動某個asp的時候,在網址的部分加上變數以及要傳的資料
舉個例子就清楚多了
例如:
當我們要啟動一個【aaa.asp】的時候
超鏈結會下【http://xxx.xxx.xxx/專案名稱/aaa.asp】
假設我們要傳兩個變數【a】【b】,而變數的值分別是
a=123 b=456 |
那麼要用QueryString的方式來傳給aaa.asp要怎麼用呢
其實粉簡單:我們已下把【http:/xxx.xxx.xxx/專案名稱/】省略,這樣看起還會清楚些
aaa.asp?a=123&b=456 |
方法就是再aaa.asp後面
第一個參數前加上【?】,第二個以後的參數用【&】開頭
這樣講解後是否簡單許多了
所以如果要多傳一個參數【c=789】要怎麼做呢
aaa.asp?a=123&b=456&c=789
在知道如何傳QueryString的參數後,接著來看asp要如何接收這樣的參數值
在aaa.asp中
<% a=Request.QueryString("a").Item b=Request.QueryString("b").Item c=Request.QueryString("c").Item %> |
接收QueryString的參數就是這樣簡單
接著來講一下如果要用Form Submit來傳送要如何做
所謂的Form(表單)就是一個可以填寫、勾選資料的表格
要用Form把東西送出,就需要在網頁中(不限定asp唷,不論是html,htm,jsp,php,aspx....等都可以)
安排要送出的表單<FORM action="" method=POST id=form1 name=form1></FROM>
那麼在Form中可以放哪些物件把資料送出呢
屬於Form的物件有以下
text:
用於輸入單行文字
<INPUT type="text" id=text1 name=text1>
password:
用於輸入密碼
<INPUT type="password" id=password1 name=password1>
textarea:
用於輸入多行、大批文字
<TEXTAREA rows=2 cols=20 id=textarea1 name=textarea1></TEXTAREA>
file:
用於上傳檔案時的挑選
<INPUT type="file" id=file1 name=file1>
checkbox:
用於多選的核選方塊
<INPUT type="checkbox" id=checkbox1 name=checkbox1>
radio:
用於單選的核選方塊
<INPUT type="radio" id=radio1 name=radio1>
select:
下拉式選單
<SELECT id=select1 name=select1>
<OPTION></OPTION>
</SELECT>
submit:
用於送出表單的內容
<INPUT type="submit" value="Submit" id=submit1 name=submit1>
reset:
用於清除表單更新,還原表單初始狀態
<INPUT type="reset" value="Reset" id=reset1 name=reset1>
而Form的傳送方式也有兩種
我們來看一下FORM的語法
<FORM action="" method=POST id=form1 name=form1></FROM>
其中的method代表傳送的方式
POST:傳統Form的傳送方式
Get:用QueryString的方式來做Form的傳送
所以當我們的Method=POST時
送出的資料不會在網址列上看到
但是如果改成get就會看到網址列上各相關物件的資料變成QueryString的參數與資料
而如果要指定表單(Form)送給哪個asp
就要設定在action這個參數上
例如要送給aaa.asp的話
那麼就
<FORM action="aaa.asp" method=POST id=form1 name=form1></FROM>
知道了Form怎麼設定,要用哪些物件後,接著就來了解asp怎麼承接Form送過來的資料
假設有個Form裡面有兩個text分別是text1,text2如下
<FORM action="aaa.asp" method=POST id=form1 name=form1> <INPUT type="text" id=text1 name=text1><br> <INPUT type="text" id=text2 name=text2><br> <INPUT type="submit" value="Submit" id=submit1 name=submit1> </FROM> |
那麼承接的aaa.asp要如何承接呢
<% text1=Request.Form("text1").Item text2=Request.Form("text2").Item %> |
上面的參數名稱,是Form的物件的Name
Request.Form("[Form物件的Name]").Item
另外有一種運用
例如我有數個資料讓人家勾選,可多選(checkbox)
那麼如果每個checkbox都是相同的name要怎麼承接呢
看看以下的例子
<FORM action="aaa.asp" method=POST id=form1 name=form1> <%For y = 1 to 10%> <INPUT type="checkbox" id=chkId name=chkId value="<%=y%>"><%=y%><br> <%Next%> <INPUT type="submit" value="Submit" id=submit1 name=submit1> </FROM> |
這種例子,是多選,並且有打勾的才是所要的
承接的部份要怎麼做呢,請看以下
<% Dim ChkId ChkCnt=Request.Form("chkId").Count ReDim ChkId(ChkCnt) For y = 1 to CHkCnt ChkId(y) = Request.Form("chkId").Item(y) Next %> |
用一個陣列來承接,並且依照勾選的數量(Request.Form("chkId").Count)來指定陣列的大小
最後把值放入陣列中
此外也可搭配QueryString在Post Form上
舉個例子就清楚了
<FORM action="aaa.asp?a=123" method=POST id=form1 name=form1> <INPUT type="text" id=text1 name=text1><br> <INPUT type="submit" value="Submit" id=submit1 name=submit1> </FROM> |
這個例子中,Form的Action中用了QueryString傳了a=123
另外text1則是有使用者輸入
承接的部份
<% a=Request.QueryString("a").Item text1=Request.Form("text1").Item %> |
這樣是否比較出QueryString與Form的不同,以及他們各自的使用方式呢
希望對大家有幫助
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |