前沿拓展:
PHP 中的 $_GET 和 $_POST 變量用于檢索表單中的信息,比如用戶輸入。
PHP 表單處理
有一點很重要的事情值得注意,當(dāng)處理 HTML 表單時,PHP 能把來自 HTML 頁面中的表單元素自動變成可供 PHP 腳本使用。
實例
下面的實例包含了一個 HTML 表單,帶有兩個輸入框和一個提交按鈕。
form.html 文件代碼:
<pre><html><head><metacharset=”utf-8″><title>菜鳥教程(runoob.com)</title></head><body><formaction=”welcome.php”method=”post”>名字: <inputtype=”text”name=”fname”>年齡: <inputtype=”text”name=”age”><inputtype=”submit”value=”提交”></form></body></html>
當(dāng)用戶填寫完上面的表單并點擊提交按鈕時,表單的數(shù)據(jù)會被送往名為 “welcome.php” 的 PHP 文件:
welcome.php 文件代碼:
<pre>歡迎 <?phpecho $_POST[“fname”]; ?>!<br>你的年齡是 <?phpecho $_POST[“age”]; ?> 歲。
通過瀏覽器訪問演示如下:
PHP 獲取下拉菜單的數(shù)據(jù)
PHP 下拉菜單單選
以下實例我們設(shè)置了下拉菜單三個選項,表單使用 GET 方式獲取數(shù)據(jù),action 屬性值為空表示提交到當(dāng)前腳本,我們可以通過 select 的 name 屬性獲取下拉菜單的值:
php_form_select.php 文件代碼:
<?php$q = isset($_GET[‘q’])? htmlspecialchars($_GET[‘q’]) : ”;if($q){if($q ==’RUNOOB’){echo’菜鳥教程<br>http://www.runoob.com’; }elseif($q ==’GOOGLE’){echo’Google 搜索<br>http://www.google.com’; }elseif($q ==’TAOBAO’){echo’淘寶<br>http://www.taobao.com’; }}else{?>
<formaction=””method=”get”><selectname=”q”><optionvalue=””>選擇一個站點:</option><optionvalue=”RUNOOB”>Runoob</option><optionvalue=”GOOGLE”>Google</option><optionvalue=”TAOBAO”>Taobao</option></select><inputtype=”submit”value=”提交”></form>
<?php}?>
PHP 下拉菜單多選
如果下拉菜單是多選的( multiple=”multiple”),我們可以通過將設(shè)置 select 以數(shù)組的方式獲取,以下使用 POST 方式提交,代碼如下所示:
php_form_select_mul.php 文件代碼:
<?php$q = isset($_POST[‘q’])? $_POST[‘q’] : ”;if(is_array($q)){$sites = array(‘RUNOOB’ => ‘ http://www.runoob.com’, ‘GOOGLE’ => ‘Google 搜索: http://www.google.com’, ‘TAOBAO’ => ‘淘寶: http://www.taobao.com’, ); foreach($qas$val){// PHP_EOL 為常量,用于換行echo$sites[$val] . PHP_EOL; }}else{?>
<formaction=””method=”post”><selectmultiple=”multiple”name=”q[]”><optionvalue=””>選擇一個站點:</option><optionvalue=”RUNOOB”>Runoob</option><optionvalue=”GOOGLE”>Google</option><optionvalue=”TAOBAO”>Taobao</option></select><inputtype=”submit”value=”提交”></form>
<?php}?>
單選按鈕表單
PHP 單選按鈕表單中 name 屬性的值是一致的,value 值是不同的,代碼如下所示:
php_form_radio.php 文件代碼:
<?php$q = isset($_GET[‘q’])? htmlspecialchars($_GET[‘q’]) : ”;if($q){if($q ==’RUNOOB’){echo’菜鳥教程<br>http://www.runoob.com’; }elseif($q ==’GOOGLE’){echo’Google 搜索<br>http://www.google.com’; }elseif($q ==’TAOBAO’){echo’淘寶<br>http://www.taobao.com’; }}else{
?><formaction=””method=”get”><inputtype=”radio”name=”q”value=”RUNOOB”/>Runoob <inputtype=”radio”name=”q”value=”GOOGLE”/>Google <inputtype=”radio”name=”q”value=”TAOBAO”/>Taobao <inputtype=”submit”value=”提交”></form>
<?php}?>
checkbox 復(fù)選框
PHP checkbox 復(fù)選框可以選擇多個值:
php_form_select_checkbox.php 文件代碼:
<?php$q = isset($_POST[‘q’])? $_POST[‘q’] : ”;if(is_array($q)){$sites = array(‘RUNOOB’ => http://www.runoob.com’, ‘GOOGLE’ => ‘Google 搜索: http://www.google.com’, ‘TAOBAO’ => ‘淘寶: http://www.taobao.com’, ); foreach($qas$val){// PHP_EOL 為常量,用于換行echo$sites[$val] . PHP_EOL; }}else{
?><formaction=””method=”post”><inputtype=”checkbox”name=”q[]”value=”RUNOOB”> Runoob<br><inputtype=”checkbox”name=”q[]”value=”GOOGLE”> Google<br><inputtype=”checkbox”name=”q[]”value=”TAOBAO”> Taobao<br><inputtype=”submit”value=”提交”></form>
<?php}?>
表單驗證
應(yīng)該在任何可能的時候?qū)τ脩糨斎脒M行驗證(通過客戶端腳本)。瀏覽器驗證速度更快,并且可以減輕服務(wù)器的負(fù)載。
如果用戶輸入需要插入數(shù)據(jù)庫,您應(yīng)該考慮使用服務(wù)器驗證。在服務(wù)器驗證表單的一種好的方式是,把表單傳給它自己,而不是跳轉(zhuǎn)到不同的頁面。這樣用戶就可以在同一張表單頁面得到錯誤信息。用戶也就更容易發(fā)現(xiàn)錯誤了。
拓展知識:
原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請注明出處:http:///72992.html