版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2
3掌握表單和常用表單元素的創(chuàng)建方法掌握表單提交和參數(shù)值獲取方式了解如何在Web頁中嵌入PHP腳本掌握在PHP中獲取表單數(shù)據(jù)的方法了解如何對URL傳遞的參數(shù)進(jìn)行編/解碼培養(yǎng)為人民服務(wù),樂于奉獻(xiàn)的精神4
5表單及常用表單元素7.1表單主要用于收集用戶信息,它是網(wǎng)頁程序與用戶交互的重要渠道。例如,用戶在網(wǎng)頁上進(jìn)行注冊、登錄和留言等操作時(shí),都是通過表單向網(wǎng)站數(shù)據(jù)庫提交或讀取數(shù)據(jù)的。在用戶填寫完注冊信息并單擊“提交”按鈕后,程序?qū)⒈韱蝺?nèi)容從客戶端瀏覽器傳送到服務(wù)器端,經(jīng)過服務(wù)器上的PHP程序進(jìn)行相應(yīng)處理后,再把反饋信息傳送到客戶端瀏覽器,從而實(shí)現(xiàn)客戶端和服務(wù)器端的交互。一個網(wǎng)頁表單通常由表單標(biāo)簽和各種表單元素組成,下面分別介紹。677.1.1認(rèn)識及創(chuàng)建表單7.1.2認(rèn)識表單元素表單及常用表單元素7.1認(rèn)識及創(chuàng)建表單7.1.18<formname="form1"method="post"action="">……//省略插入的表單元素</form>表單的HTML標(biāo)簽為<form>,添加<form>標(biāo)簽,并在其中放置相關(guān)表單元素,如文本字段、復(fù)選框、單選框、提交按鈕等,即可創(chuàng)建一個表單,表單結(jié)構(gòu)如下:下面簡單介紹<form>標(biāo)簽的常用屬性。name:表單名稱,用戶可自定義表單名稱。method:表單提交方式,通常為post或get,7.2.1節(jié)將會介紹二者的區(qū)別。action:指定處理表單頁面的URL,通常為具有數(shù)據(jù)處理能力的Web程序,如后綴為.php的動態(tài)網(wǎng)頁。認(rèn)識及創(chuàng)建表單7.1.19在Dreamweaver中插入表單的方法非常簡單,在設(shè)計(jì)視圖中定位插入點(diǎn)后,單擊“插入”面板“表單”類別中的“表單”按鈕,即可插入表單,如圖7-1所示。知識庫圖7-1插入表單101輸入域標(biāo)簽<input>認(rèn)識表單元素7.1.2一個表單(form)通常包含很多表單元素。常用的表單元素有輸入域<input>、選擇域<select>和<option>、文本域<textarea>等,下面分別介紹。<formname="form1"method="post"action=""><inputname="element_name"type="type_name"></form>輸入域標(biāo)簽<input>是表單中使用最多的標(biāo)簽之一。常見的文本框、密碼框、按鈕、單選按鈕和復(fù)選框等都是由<input>標(biāo)簽表示的。語法格式如下:參數(shù)name是指輸入域的名稱,參數(shù)type是指輸入域的類型。type屬性的取值一共有10種,表7-1列出了其屬性值及應(yīng)用舉例。(具體見書詳細(xì)位置)112選擇域標(biāo)簽<select>和<option>認(rèn)識表單元素7.1.2<selectname="select"size="3"multiple="multiple"><optionvalue="v1">選項(xiàng)1</option><optionvalue="v2">選項(xiàng)2</option><optionvalue="v3">選項(xiàng)3</option>…</select>選擇域標(biāo)簽用于創(chuàng)建列表或菜單。列表可以顯示一定數(shù)量的選項(xiàng),如果超出該數(shù)量,會自動出現(xiàn)滾動條,瀏覽者可以拖動滾動條來查看各選項(xiàng),如圖7-2所示。菜單可以節(jié)省空間,正常狀態(tài)下只顯示一個選項(xiàng),單擊右側(cè)的下三角按鈕,可以展開菜單項(xiàng)看到全部選項(xiàng),如圖7-3所示。列表的實(shí)現(xiàn)代碼如下:參數(shù)name表示選擇域名稱;參數(shù)size表示列表行數(shù);參數(shù)value表示列表選項(xiàng)值;參數(shù)multiple表示以列表方式顯示數(shù)據(jù),省略則以菜單方式顯示。12(實(shí)例位置:素材與實(shí)例\example\ph07\01)【例7-1】選擇域標(biāo)簽的用法。實(shí)例代碼如下:<form><p>請選擇所學(xué)專業(yè):</p><selectname="select"size="4"multiple="multiple"><optionvalue="v1"selected>平面設(shè)計(jì)</option><optionvalue="v2">網(wǎng)頁設(shè)計(jì)</option><optionvalue="v3">電腦辦公</option><optionvalue="v3">程序開發(fā)</option></select></form>認(rèn)識表單元素7.1.213運(yùn)行結(jié)果如圖7-2所示。將上述代碼<select>標(biāo)簽中的“size="4"”和“multiple="multiple"”屬性刪除,再次運(yùn)行文檔,標(biāo)記將顯示為菜單方式,如圖7-3所示。認(rèn)識表單元素7.1.2圖7-2列表方式圖7-3菜單方式143文本域標(biāo)簽<textarea>認(rèn)識表單元素7.1.2<textareaname="t_name"cols="70"rows="5"wrap="value">淘寶有權(quán)根據(jù)需要不時(shí)地制訂(部分文字省略)</textarea><textarea></textarea>標(biāo)簽為文本域標(biāo)簽,用于制作多行文本框,可以讓用戶輸入多行文本。語法格式如下:參數(shù)name表示文本域名稱,cols表示文本域列數(shù),rows表示文本域行數(shù)(cols和rows都以字符為單位),wrap用于設(shè)定文本換行方式(值為“soft”表示不自動換行,值為“hard”表示移動硬回車換行),換行標(biāo)簽一同被發(fā)送到服務(wù)器,輸出時(shí)也會換行。15(實(shí)例位置:素材與實(shí)例\example\ph07\02)【例7-2】文本域標(biāo)簽的用法。本例通過具體實(shí)例了解wrap屬性的“hard”和“soft”值的區(qū)別,實(shí)例代碼如下:<formname="form1"method="post"action="index.php"><p><textareaname="n1"rows="3"cols="20"wrap="soft">此處使用軟回車,輸出后不換行。</textarea><textareaname="n2"rows="3"cols="20"wrap="hard">此處使用硬回車,輸出后自動換行。</textarea></p><p><inputtype="submit"name="submit"value="提交"></p></form><?phpechonl2br($_POST[n1])."<br>";//使用nl2br()函數(shù)將換行符“\n”替換成“<br>”標(biāo)簽,并應(yīng)用echo()進(jìn)行輸出echonl2br($_POST[n2]);?>認(rèn)識表單元素7.1.216運(yùn)行結(jié)果如圖7-4所示。認(rèn)識表單元素7.1.2圖7-4文本域標(biāo)簽的用法soft和hard換行標(biāo)簽的使用效果一般在瀏覽器中看不出來,只有使用nl2br()函數(shù)進(jìn)行轉(zhuǎn)換后查看。提示
17表單提交方式和參數(shù)值獲取方式7.2用戶在填寫完表單后,需要將表單內(nèi)容提交到服務(wù)器,根據(jù)提交方式的不同,參數(shù)值獲取的方式也不一樣。18197.2.1表單提交方式7.2.2參數(shù)值獲取方式表單提交方式和參數(shù)值獲取方式7.220提交表單的方式有兩種:GET和POST。采用哪種方式由<form>表單的method屬性指定。表單提交方式7.2.11使用GET方法提交表單GET是<form>表單中method屬性的默認(rèn)方法。使用GET方法提交表單數(shù)據(jù)時(shí),表單發(fā)送的信息對任何人都是可見的(所有變量名和值都顯示在URL中)。不過,由于變量顯示在URL中,把頁面添加到書簽中也更為方便。另外,GET對所發(fā)送信息的數(shù)量也有限制,在使用GET方法發(fā)送表單數(shù)據(jù)時(shí),URL的長度應(yīng)該限制在1MB字符以內(nèi)。如果發(fā)送的數(shù)據(jù)量太大,數(shù)據(jù)將被截?cái)?,從而?dǎo)致意外或失敗的處理結(jié)果。因此GET方法可用于傳送小數(shù)據(jù)量和非敏感信息。21使用GET方法傳遞參數(shù)的格式如下:表單提交方式7.2.1URL為表單響應(yīng)地址,name和password為表單元素的名稱,zhangsan和123為表單元素的值。URL和表單元素之間用“?”隔開,多個表單元素之間用“&”隔開。/counter.php?name=zhangsan&password=12322(實(shí)例位置:素材與實(shí)例\example\ph07\03)【例7-3】創(chuàng)建一個表單,并用GET方法提交用戶名和密碼。實(shí)例代碼如下:<formname="form1"method="get"action="index.php"><tablewidth="230"border="0"
cellpadding="0"cellspacing="0"><tr><tdwidth="230"height="30"> 用戶名:
<inputname="user"type="text"size="12"></td></tr><tr><tdwidth="230">
密
碼:表單提交方式7.2.123(實(shí)例位置:素材與實(shí)例\example\ph07\03)【例7-3】創(chuàng)建一個表單,并用GET方法提交用戶名和密碼。實(shí)例代碼如下:<inputname="pwd"type="password"id="pwd"size="13"></td></tr><tr><tdalign="right"height="40"><inputtype="submit"name="submit"value="提交"></td></tr></table></form>表單提交方式7.2.124運(yùn)行頁面,輸入用戶名“cc”和密碼“123”,單擊“提交”按鈕,輸入的信息顯示在瀏覽器地址欄中,結(jié)果如圖7-5所示。表單提交方式7.2.1由上述實(shí)例可見,這種方法會將參數(shù)暴露。如果用戶要傳遞的是非保密性參數(shù),則可以采用GET方法;如果用戶傳遞的是保密性的參數(shù)(如上例中的密碼),這種方法就不可用。圖7-5使用GET()方法提交表單25表單提交方式7.2.12使用POST方法提交表單要用POST方法提交表單,只需要將<form>表單的method屬性設(shè)置為POST即可。通過POST方法從表單發(fā)送的信息對其他人是不可見的(所有名稱/值會被嵌入HTTP請求的主體中),并且對所發(fā)送信息的數(shù)量也無限制。不過,由于變量未顯示在URL中,也就無法將頁面添加到書簽。POST方法比較適合發(fā)送一些需要保密或容量較大的數(shù)據(jù)到服務(wù)器。26(實(shí)例位置:素材與實(shí)例\example\ph07\04)【例7-4】創(chuàng)建一個表單,并用POST方法提交文本框信息。實(shí)例代碼如下:<formname="form1"method="post"action="index.php"><tablewidth="400"border="0"
cellpadding="0"cellspacing="0"><tr><tdheight="30"> 請輸入快遞單號:
<inputtype="text"name="user"size="26"><inputtype="submit"name="submit"value="提交"></td></tr></table></form>表單提交方式7.2.127上述代碼中,form表單的method屬性指定了POST方法的傳遞方式,action屬性指定了數(shù)據(jù)處理頁為index.php。所以當(dāng)單擊“提交”按鈕后即提交文本框的信息到服務(wù)器,地址欄中并不顯示參數(shù),運(yùn)行結(jié)果如圖7-6所示。表單提交方式7.2.1圖7-6使用POST方法提交表單這種情況下,表單的method屬性值必須為POST。提示28參數(shù)值獲取方式7.2.21$_POST[]全局變量使用PHP的$_POST[]預(yù)定義變量可以獲取表單元素的值,格式為:PHP獲取參數(shù)值的方式有3種:$_POST[]、$_GET[]和$_SESSION[],分別用于獲取表單、URL和Session變量的值。$_POST["element_name"]例如要獲取文本框user和密碼框pass的值,可以使用以下代碼:<?php$user=$_POST["user"];//應(yīng)用$_POST[]全局變量獲取表單元素中文本框的值
$pass=$_POST["pass"];?>$_POST[]和$_GET[]全局變量都可以獲取表單元素的值,但獲取的表單元素名稱是區(qū)分大小寫的。提示29參數(shù)值獲取方式7.2.22$_GET[]全局變量使用PHP的$_GET[]預(yù)定義變量可以獲取通過GET()方法傳遞過來的表單元素的值,格式為:$_GET["element_name"]此時(shí)需要將表單的method屬性設(shè)置為GET,其使用方式同$_POST[]。另外對于非表單提交過來的數(shù)據(jù),比如直接通過超鏈接附加過來的數(shù)據(jù),也可以使用$_GET[]方法獲取。例如:<ahref="doget.php?user=aaa&pass=123">超鏈接傳遞參數(shù)</a>就是說只要出現(xiàn)在瀏覽器地址欄中的參數(shù)都可以用$_GET[]方法獲取,不管這些數(shù)據(jù)是來自表單還是普通超鏈接。30參數(shù)值獲取方式7.2.23$_SESSION[]全局變量使用$_SESSION[]全局變量可以獲取表單元素的值,格式為:$_SESSION["element_name"]其使用方式同$_POST[]。使用$_SESSION[]變量獲取的變量值,保存之后任何頁面都可以使用。但這種方法很占用系統(tǒng)資源,建議慎重使用。
3132在Web頁中嵌入PHP腳本7.3在Web頁中嵌入PHP腳本的方法有兩種,一種是直接在HTML標(biāo)簽中添加PHP標(biāo)記符<?php…?>;另一種是為表單元素的value屬性賦值。7.3.1在HTML標(biāo)記中添加PHP腳本7.3.2為表單元素的value屬性賦值33在Web頁中嵌入PHP腳本7.3在HTML標(biāo)記中添加PHP腳本7.3.134在Web編碼過程中,通過在HTML標(biāo)記中添加PHP腳本標(biāo)記<?php…?>來嵌入PHP腳本,兩個標(biāo)記之間的所有文本都會被解釋為PHP語言,而標(biāo)記之外的任何文本都會被認(rèn)為是普通的HTML。例如,在<body>標(biāo)記中添加PHP腳本標(biāo)記,使用include()語句引用外部文件bottom.php,代碼如下:<?phpinclude(“bottom.php”);//引用外部文件?>35在Web程序開發(fā)過程中,為使表單元素在運(yùn)行時(shí)有默認(rèn)值,通常需要為表單元素的value屬性賦值。下面通過具體的實(shí)例講解賦值的方法。(實(shí)例位置:素材與實(shí)例\example\ph07\05)【例7-5】為表單元素的value屬性賦值。首先定義一個變量$sno2并為其賦值,然后創(chuàng)建一個表單,將變量值賦給表單中的輸入域標(biāo)簽。實(shí)例代碼如下:<?php$sno2='身份證號碼';?><form>在此處輸入身份證號碼:<inputtype="text"name="sno"
value="<?phpecho$sno2;?>"></form>為表單元素的value屬性賦值7.3.236運(yùn)行結(jié)果如圖7-7所示。為表單元素的value屬性賦值7.3.2圖7-7為表單元素的value屬性賦值
3738在PHP中獲取表單數(shù)據(jù)7.4獲取表單元素提交的值是表單最基本的應(yīng)用。本節(jié)主要以POST方法提交表單為例講述獲取表單元素的值。GET方法與POST方法相同。7.4.1獲取文本框、密碼框、隱藏域、按鈕和文本域的值7.4.2獲取單選按鈕的值7.4.3獲取列表框和菜單框的值7.4.4獲取復(fù)選框的值7.4.5獲取文件域的值39在PHP中獲取表單數(shù)據(jù)7.4獲取文本框、密碼框、隱藏域、按鈕和文本域的值7.4.140獲取表單數(shù)據(jù),實(shí)際上是獲取不同表單元素的值。<form>標(biāo)簽中的name屬性表示表單元素名稱,value屬性表示表單元素的值,在獲取表單元素值時(shí)需要使用name屬性來獲取相應(yīng)的value屬性值。所以表單中添加的所有表單元素必須定義對應(yīng)的name屬性值,并且name屬性值最好是具有一定意義的字符串,該字符串可以由英文字母和數(shù)字組合。另外表單元素在命名上盡可能不要重復(fù),以免獲取的表單元素值出錯。在網(wǎng)站程序開發(fā)中,獲取文本框、密碼框、隱藏域、按鈕和文本域的值的方法相同,都是使用name屬性來獲取相應(yīng)的value屬性值。本節(jié)僅以獲取文本框中的值為例,來介紹獲取表單元素值的方法。41(實(shí)例位置:素材與實(shí)例\example\ph07\06)【例7-6】獲取文本框中的值。本例通過獲取用戶名和密碼文本框中的值,來學(xué)習(xí)如何獲取文本框的值。<formid="form1"name="form1"method="post"action="index.php">
用戶名:
<inputtype="text"name="user"id="user"value="James"size="12"/>
密碼:
<inputtype="password"name="pass"id="pass"
value="123456"size="12"/><inputtype="submit"name="tj_btn"id="tj_btn"value="提交"/></form>步驟1
在Dreamweaver中新建文檔“index.php”,并將其保存在“D:\phpEnv\www\example\ph07\06”目錄下。步驟2
在新文檔中添加一個表單,兩個文本框和一個“提交”按鈕,并分別設(shè)置其屬性。代碼如下:獲取文本框、密碼框、隱藏域、按鈕和文本域的值7.4.142(實(shí)例位置:素材與實(shí)例\example\ph07\06)【例7-6】獲取文本框中的值。本例通過獲取用戶名和密碼文本框中的值,來學(xué)習(xí)如何獲取文本框的值。<?phpif($_POST["tj_btn"]=="提交"){//判斷所提交的按鈕值是否為“提交”
//使用echo語句輸出使用$_POST方法獲取的用戶名和密碼
echo"<br>您的用戶名是:".$_POST["user"]; echo" 您的密碼是:".$_POST["pass"];}?>步驟3
在<form>表單元素外添加PHP標(biāo)記符,使用if語句判斷用戶是否提交了表單,如果提交,則使用echo語句輸出使用$_POST[]方法獲取的用戶名和密碼。代碼如下:獲取文本框、密碼框、隱藏域、按鈕和文本域的值7.4.143步驟4
保存網(wǎng)頁并預(yù)覽,單擊“提交”按鈕,結(jié)果如圖7-8所示。圖7-8獲取文本框的值獲取文本框、密碼框、隱藏域、按鈕和文本域的值7.4.144獲取單選按鈕的值7.4.2單選按鈕(radio)一般是成組出現(xiàn)的,具有相同的name值和不同的value值。一組單選按鈕中,同一時(shí)間只能有一個被選中。45(實(shí)例位置:素材與實(shí)例\example\ph07\07)【例7-7】獲取單選按鈕的值。本例中有一組單選按鈕和一個“提交”按鈕,選中其中一個單選按鈕,并單擊“提交”按鈕,將會返回被選中單選按鈕的value值。<formid="form1"name="form1"method="post"action="index.php">
您的性別是:
<inputtype="radio"name="sex"id="radio"
value="男"checked="checked"/>男
<inputtype="radio"name="sex"id="radio2"value="女"/>女
<inputtype="submit"name="tj_btn"id="tj_btn"value="提交"/></form>步驟1
在Dreamweaver中新建文檔“index.php”,并將其保存在“D:\phpEnv\www\example\ph07\07”目錄下。步驟2
在新文檔中添加一個表單,兩個單選按鈕和一個“提交”按鈕,并分別設(shè)置其屬性。代碼如下:獲取單選按鈕的值7.4.246(實(shí)例位置:素材與實(shí)例\example\ph07\07)【例7-7】獲取單選按鈕的值。本例中有一組單選按鈕和一個“提交”按鈕,選中其中一個單選按鈕,并單擊“提交”按鈕,將會返回被選中單選按鈕的value值。<?phpif($_POST["tj_btn"]=="提交"){ echo"您的性別是:".$_POST["sex"];}?>步驟3
在<form>表單元素外添加PHP標(biāo)記符,使用if語句判斷用戶是否提交了表單,如果提交,則使用echo語句輸出使用$_POST[]方法獲取的性別。代碼如下:獲取單選按鈕的值7.4.247步驟4
保存網(wǎng)頁并預(yù)覽,單擊“提交”按鈕,結(jié)果如圖7-9所示。圖7-9獲取單選按鈕的值獲取單選按鈕的值7.4.2獲取列表框和菜單框的值7.4.3481獲取菜單框的值菜單框值的獲取非常簡單,與文本框一樣,首先需要定義菜單框的name屬性值,然后應(yīng)用$_POST[]全局變量進(jìn)行獲取。在進(jìn)行Web程序設(shè)計(jì)時(shí),列表框和菜單框的應(yīng)用非常廣泛,其基本語法一致。49(實(shí)例位置:素材與實(shí)例\example\ph07\08)【例7-8】獲取菜單框的值。本例新建一個只有一個菜單框和一個提交按鈕的表單,在菜單框中選擇指定條件后,單擊“提交”按鈕,將會輸出用戶選擇的條件值。<formid="form1"name="form1"method="post"action="index.php">
您的愛好是:
<selectname="interest"id="select"><optionvalue="游泳"selected="selected">游泳</option><optionvalue="讀書">讀書</option><optionvalue="旅游">旅游</option><optionvalue="逛街">逛街</option></select><inputtype="submit"name="tj_btn"id="tj_btn"value="提交"/></form>步驟1
在Dreamweaver中新建文檔“index.php”,并將其保存在“D:\phpEnv\www\example\ph07\08”目錄下。步驟2
在新文檔中添加一個表單,一個菜單框和一個“提交”按鈕,并分別設(shè)置其屬性。代碼如下:獲取列表框和菜單框的值7.4.350(實(shí)例位置:素材與實(shí)例\example\ph07\08)【例7-8】獲取菜單框的值。本例新建一個只有一個菜單框和一個提交按鈕的表單,在菜單框中選擇指定條件后,單擊“提交”按鈕,將會輸出用戶選擇的條件值。<?phpif($_POST["tj_btn"]=="提交"){ echo"您的愛好是:"; echo$_POST["interest"];}?>步驟3
在<form>表單元素外添加PHP標(biāo)記符,使用if語句判斷用戶是否提交了表單,如果提交,則使用echo語句輸出使用$_POST[]方法獲取的值。代碼如下:獲取列表框和菜單框的值7.4.351步驟4
保存網(wǎng)頁并預(yù)覽,單擊“提交”按鈕,結(jié)果如圖7-10所示。獲取列表框和菜單框的值7.4.3圖7-10獲取菜單框的值獲取列表框和菜單框的值7.4.3522獲取列表框的值當(dāng)為<select>標(biāo)簽設(shè)置multiple屬性后,其將變?yōu)榱斜砜?,格式為?lt;selectname="interest[]"id="interest[]"size="4"multiple="multiple">…</select>在返回頁面可以使用count()函數(shù)計(jì)算數(shù)組大小,結(jié)合for循環(huán)語句即可輸出選擇的菜單項(xiàng)的值。53(實(shí)例位置:素材與實(shí)例\example\ph07\09)【例7-9】獲取列表框的值。本例新建一個只有一個列表框和一個提交按鈕的表單,在列表框中選擇指定條件后,單擊“提交”按鈕,將會輸出用戶選擇的條件值。<formid="form1"name="form1"method="post"action="index.php">您的愛好是:
<selectname="interest[]"id="interest[]"size="4"multiple="multiple"><optionvalue="游泳">游泳</option><optionvalue="讀書">讀書</option><optionvalue="旅游">旅游</option><optionvalue="逛街">逛街</option></select><inputtype="submit"name="tj_btn"id="tj_btn"value="提交"/></form>步驟1
在Dreamweaver中新建文檔“index.php”,并將其保存在“D:\phpEnv\www\example\ph07\09”目錄下。步驟2
在新文檔中添加一個表單,一個列表框和一個“提交”按鈕,并分別設(shè)置其屬性。代碼如下:獲取列表框和菜單框的值7.4.354(實(shí)例位置:素材與實(shí)例\example\ph07\09)【例7-9】獲取列表框的值。本例新建一個只有一個列表框和一個提交按鈕的表單,在列表框中選擇指定條件后,單擊“提交”按鈕,將會輸出用戶選擇的條件值。<?phpif($_POST["tj_btn"]=="提交"){ //判斷所提交的按鈕值是否為“提交”
echo"您的愛好是:"; //使用count()函數(shù)計(jì)算數(shù)組大小, //并結(jié)合for循環(huán)語句輸出選擇的菜單項(xiàng)的值
for($i=0;$i<count($_POST[interest]);$i++){ echo$_POST[interest][$i]." ";}}?>步驟3
在<form>表單元素外添加PHP標(biāo)記符,使用if語句判斷用戶是否提交了表單,如果提交,則使用count()函數(shù)計(jì)算數(shù)組大小,結(jié)合for循環(huán)語句輸出使用$_POST[]方法獲取的值。代碼如下:獲取列表框和菜單框的值7.4.355步驟4
保存網(wǎng)頁并預(yù)覽,單擊“提交”按鈕,結(jié)果如圖7-11所示。獲取列表框和菜單框的值7.4.3圖7-11獲取列表框的值獲取復(fù)選框的值7.4.456當(dāng)需要進(jìn)行項(xiàng)目的多項(xiàng)選擇時(shí),可以使用復(fù)選框。例如,網(wǎng)上購物時(shí),在購物車中結(jié)賬時(shí)需要選擇多個選項(xiàng),就會用到復(fù)選框。復(fù)選框一般是多個選項(xiàng)同時(shí)存在,為便于傳值,name的名字可以是一個數(shù)組形式,其格式為:<inputtype="checkbox"name="chkbox[]"id="checkbox"value="chkbox1">在返回頁面可以使用count()函數(shù)計(jì)算數(shù)組大小,并結(jié)合for循環(huán)語句輸出選擇的復(fù)選框的值。57(實(shí)例位置:素材與實(shí)例\example\ph07\10)【例7-10】獲取復(fù)選框的值。本例新建一個只有一組復(fù)選框和一個“提交”按鈕的表單,在復(fù)選框中選擇指定條件后,單擊“提交”按鈕,將會輸出用戶選擇的條件值。<formname="form1"method="post"action="index.php"><tablewidth="360"cellpadding="0"cellspacing="0"><tr><tdheight="25"valign="top">您平時(shí)的愛好有:</td></tr><tr><tdheight="25"> <inputtype="checkbox"name="mrbook[]"value="讀書"> 讀書
<inputtype="checkbox"name="mrbook[]"value="寫字">寫字
<inputtype="checkbox"name="mrbook[]"value="爬山">爬山步驟1
在Dreamweaver中新建文檔“index.php”,并將其保存在“D:\phpEnv\www\example\ph07\10”目錄下。步驟2
在新文檔中添加一個表單,一個列表框和一個“提交”按鈕,并分別設(shè)置其屬性。代碼如下:獲取復(fù)選框的值7.4.458(實(shí)例位置:素材與實(shí)例\example\ph07\10)<inputtype="checkbox"name="mrbook[]"value="旅游">旅游
<inputtype="checkbox"name="mrbook[]"value="逛街">逛街
</td></tr><tr><tdheight="25"align="right"><inputtype="submit"
name="submit"value="提交"></td></tr></table></form>獲取復(fù)選框的值7.4.459(實(shí)例位置:素材與實(shí)例\example\ph07\10)<?php if(($_POST[mrbook]!=null)){ //使用if語句判斷數(shù)組是否為空, //也就是用戶是否選擇了某個或某幾個選項(xiàng)
echo"您平時(shí)的愛好有:";//不為空則輸出語句
for($i=0;$i<count($_POST[mrbook]);$i++) echo$_POST[mrbook][$i]." "; //使用for循環(huán)語句輸出用戶選擇的愛好
}?>步驟3
在<form>表單元素外添加PHP標(biāo)記符,使用if語句判斷用戶是否選擇了復(fù)選項(xiàng),如果選擇了,則使用count()函數(shù)計(jì)算數(shù)組大小,結(jié)合for循環(huán)語句輸出使用$_POST[]方法獲取的值。代碼如下:獲取復(fù)選框的值7.4.460步驟4
保存網(wǎng)頁并預(yù)覽,單擊“提交”按鈕,結(jié)果如圖7-12所示。圖7-12獲取復(fù)選框的值獲取復(fù)選框的值7.4.4獲取文件域的值7.4.561使用文件域可以實(shí)現(xiàn)文件的上傳。文件域值的獲取同文本框一樣,首先要定義輸入框的name屬性值,然后應(yīng)用$_POST[]全局變量進(jìn)行獲取。62(實(shí)例位置:素材與實(shí)例\example\ph07\11)【例7-11】獲取文件域的值。本例新建一個只有一個文件域和一個“提交”按鈕的表單,在復(fù)選框中選擇指定條件后,單擊“提交”按鈕,將會輸出用戶選擇的條件值。步驟1
在Dreamweaver中新建文檔“index.php”,并將其保存在“D:\phpEnv\www\example\ph07\11”目錄下。步驟2
在新文檔中添加一個表單,一個列表框和一個“提交”按鈕,并分別設(shè)置其屬性。代碼如下:獲取文件域的值7.4.5本例實(shí)現(xiàn)的是獲取文件域的值,并沒有實(shí)現(xiàn)文件的上傳,因此不需要設(shè)置<form>標(biāo)簽的enctype屬性為multipart/form-data。提示<formaction="biaodan5.php"method="post"name="form1"id="form1">
選擇照片:
<inputtype="file"name="zhaopian"id="zhaopian"size="30"/><inputtype="submit"name="tj_btn"id="tj_btn"value="提交"/></form>63(實(shí)例位置:素材與實(shí)例\example\ph07\11)步驟3
在<form>表單元素外添加PHP標(biāo)記符,使用if語句判斷用戶是否提交了表單,如果提交了,則使用echo語句輸出使用$_POST[]方法獲取的文件名。代碼如下:獲取文件域的值7.4.5<?phpif($_POST["tj_btn"]=="提交"){ echo"您選擇的照片是:"; echo$_POST[zhaopian];}?>64步驟4
保存網(wǎng)頁并預(yù)覽,單擊“瀏覽…”按鈕選擇文件,之后單擊“提交”按鈕,結(jié)果如圖7-13所示。圖7-13獲取文件域的值在使用文件域上傳文件時(shí),如果需要限制上傳文件的類型,可以通過設(shè)置其accept屬性來實(shí)現(xiàn),這是文件域特有的屬性。知識庫獲取文件域的值7.4.5
65667.5.1對URL傳遞的參數(shù)進(jìn)行編碼7.5.2對URL傳遞的參數(shù)進(jìn)行解碼對URL傳遞的參數(shù)進(jìn)行編/解碼7.567使用URL參數(shù)傳遞數(shù)據(jù),就是在URL地址后面加上適當(dāng)?shù)膮?shù)。URL實(shí)體對這些參數(shù)進(jìn)行處理。使用方法如下:對URL傳遞的參數(shù)進(jìn)行編碼7.5.1/book.php?name1=value1&name2=value2……可以看出,這種方法會將參數(shù)暴露無疑,下面針對該問題介紹一種URL編碼方式,以對URL傳遞的參數(shù)進(jìn)行編碼。68URL編碼是一種瀏覽器用來打包表單輸入數(shù)據(jù)的格式,瀏覽器從表單中獲取所有name和其中的值,將它們以name/value參數(shù)編碼(移去那些不能傳送的字符,將數(shù)據(jù)排行等等)作為URL的一部分或者分離地發(fā)給服務(wù)器。例如,在參數(shù)中帶有空格,則傳遞參數(shù)時(shí)就會發(fā)生錯誤,而用URL編碼過以后,空格轉(zhuǎn)換成了“%20”,這樣錯誤就不會發(fā)生。對中文進(jìn)行編碼也是同樣的情況,最主要的一點(diǎn)就是它可以對URL傳遞的參數(shù)進(jìn)行編碼。PHP中對字符串進(jìn)行URL編碼使用的是urlencode()函數(shù),其語法格式如下:對URL傳遞的參數(shù)進(jìn)行編碼7.5.1stringurlencode(string$str)該函數(shù)可以實(shí)現(xiàn)對字符串str進(jìn)行URL編碼。69(實(shí)例位置:素材與實(shí)例\example\ph07\12)【例7-12】本實(shí)例中,單擊圖片,通過URL傳遞圖片名稱到指定文件頁,應(yīng)用urlencode()函數(shù)對圖片名稱進(jìn)行URL編碼,顯示在IE地址欄中的字符串是URL編碼后的字符串,代碼如下:<ahref="index.php?picname=<?phpechourlencode("茶道知識");?>"><imgsrc="images/tea.png"border="1"></a>對URL傳遞的參數(shù)進(jìn)行編碼7.5.1對于服務(wù)器來說,編碼前后的字符串沒有什么區(qū)別,服務(wù)器能夠自動識別。此處是為講解URL編碼的用法。在實(shí)際應(yīng)用中,對一些非保密性的參數(shù)不需要進(jìn)行編碼,讀者可根據(jù)實(shí)際情況有選擇地使用。提示70運(yùn)行結(jié)果如圖7-14所示。對URL傳遞的參數(shù)進(jìn)行編碼7.5.1圖7-14對URL傳遞的參數(shù)進(jìn)行編碼71對于URL傳遞的參數(shù)直接應(yīng)用$_GET[]方法獲取即可。而對于進(jìn)行URL加密的查詢字符串,需要通過urlencode()函數(shù)對獲取后的字符串進(jìn)行解碼。其語法格式如下:對URL傳遞的參數(shù)進(jìn)行解碼7.5.2stringurldecode(string$str)該函數(shù)可以實(shí)現(xiàn)對URL編碼str查詢字符串進(jìn)行解碼。72(實(shí)例位置:素材與實(shí)例\example\ph07\13)【例7-13】在例7-12中應(yīng)用urlencode()函數(shù)實(shí)現(xiàn)了對字符串“茶道知識”進(jìn)行編碼,將編碼后的字符串傳給變量picname。本例中,將應(yīng)用urldecode()函數(shù)對獲取的變量picname進(jìn)行解碼,將解碼后的結(jié)果輸出到瀏覽器,代碼如下:<ahref="index.php?picname=<?phpecho
urlencode("茶道知識");?>"><imgsrc="images/tea.pn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 流行體知識講解
- 藥劑師是什么?- 藏在藥香里的健康守護(hù)者與中席教育的賦能之道
- 活性污泥鏡檢培訓(xùn)
- 柔丫產(chǎn)品知識培訓(xùn)課件
- 松江培訓(xùn)班考級
- 2026年傳統(tǒng)文化知識問答及解析
- 2024-2025學(xué)年江蘇省連云港市灌云縣部分學(xué)校高二下學(xué)期5月月考?xì)v史試題(解析版)
- 2026年醫(yī)療設(shè)備維護(hù)與管理專業(yè)試題
- 2026年國際貿(mào)易國際商業(yè)合同解析能力測試
- 2026年項(xiàng)目管理流程與實(shí)施技巧考試題
- 湖北省荊州市八縣2024-2025學(xué)年高一上學(xué)期期末聯(lián)考英語試題(無答案)
- 《新疆工程勘察設(shè)計(jì)計(jì)費(fèi)導(dǎo)則(工程勘察部分)》
- 字母認(rèn)主協(xié)議書(2篇)
- 骨科研究生年終總結(jié)
- (完整)七年級生物上冊思維導(dǎo)圖
- GB/T 34765-2024肥料和土壤調(diào)理劑黃腐酸含量及碳系數(shù)的測定方法
- DL∕T 1573-2016 電力電纜分布式光纖測溫系統(tǒng)技術(shù)規(guī)范
- 電梯維護(hù)保養(yǎng)規(guī)則(TSG T5002-2017)
- PLC控制的搶答器設(shè)計(jì)與仿真
- (高清版)TDT 1057-2020 國土調(diào)查數(shù)據(jù)庫標(biāo)準(zhǔn)
- 天然藥物化學(xué)教學(xué)大綱
評論
0/150
提交評論