定義提交方法
指定表單數(shù)據(jù)的編碼類型之后,還需要設(shè)置表單數(shù)據(jù)的發(fā)送方法。form元素通過method屬性定義發(fā)送表單數(shù)據(jù)的方法。method屬性取值包括get和post(默認(rèn))。這兩種方法在數(shù)據(jù)傳輸過程中分別對(duì)應(yīng)于http協(xié)議中的GET和POST方法。這兩種方法的區(qū)別如下。
?GET方法是將表單數(shù)據(jù)作為字符串附加到URL后面,用“?”符號(hào)進(jìn)行區(qū)分,每個(gè)表單域(名/值對(duì))之間用“&”符號(hào)隔開,然后把整個(gè)字符串發(fā)送到服務(wù)器端。例如:
http://www.baidu.com/s?id=1&method=get
由于系統(tǒng)環(huán)境變量的長(zhǎng)度限制了輸入字符串的長(zhǎng)度,因此GET方法所發(fā)送的信息不能太長(zhǎng),一般在4000字符左右,而且不能含有非ASCII碼字符。由于GET方法通過在瀏覽器的地址欄中以顯式方式傳遞表單數(shù)據(jù),也帶來(lái)信息安全性問題,因此使用時(shí)必須要小心。
?POST方法是將表單數(shù)據(jù)進(jìn)行加密,并隨HTTP數(shù)據(jù)流一同發(fā)送到服務(wù)器。這種方法發(fā)送的數(shù)據(jù)量基本上沒有什么限制,因此在表單設(shè)計(jì)中作為推薦選項(xiàng)進(jìn)行設(shè)置。如果設(shè)計(jì)上傳文件時(shí),必須設(shè)置POST方法。
定義請(qǐng)求地址
提交表單后,把表單數(shù)據(jù)上傳到服務(wù)器,實(shí)際上就是把表單數(shù)據(jù)傳遞給另一個(gè)文件。從Web開發(fā)的角度來(lái)分析,提交表單其實(shí)就是頁(yè)面之間的數(shù)據(jù)傳遞。
在表單設(shè)計(jì)中必須確定數(shù)據(jù)發(fā)送的目標(biāo),這個(gè)目標(biāo)可能就是準(zhǔn)備接收表單數(shù)據(jù)的PHP文件。只有這樣網(wǎng)頁(yè)交互的任務(wù)才能夠得以實(shí)現(xiàn)。form元素為此提供了action屬性,該屬性可以定義要接收表單數(shù)據(jù)的頁(yè)面。例如:
<form id="form1" name="form1" method="post" action="text.php"> …</form>
上面代碼定義了表單數(shù)據(jù)傳遞給同一目錄中的text.php文件。URL可以是相對(duì)路徑,也可以是絕對(duì)路徑,具體設(shè)置可以根據(jù)需要而定。另外,還可以定義target屬性,指定打開目標(biāo)頁(yè)面的方式,包括_blank、_self、_parent和_top4個(gè)值,簡(jiǎn)單說明如下。
?_blank:表示在一個(gè)新的窗口中打開指定文件。
?_self:表示在當(dāng)前窗口中打開指定文件。
?_parent:表示在當(dāng)前框架的父框架窗口中打開指定文件,如果沒有父框架,等價(jià)于_self。
?_top:表示在頂部瀏覽器窗口中打開指定文件,如果沒有框架,等價(jià)于_self。
action屬性不僅可以指定URL字符串,也可以是一個(gè)電子郵件地址,采用電子郵件方式時(shí),用action=mailto:郵件地址來(lái)表示,例如:ac-tion="maito:zhangsan@163.com"。