PHP全棧開發(六):PHP與HTML頁面交互
之前我們在HTML表單學習這篇文章裏面創建了一個HTML頁面下的表單。
這個表單是用戶用來輸入數據的
具體代碼如下
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <h1>用戶登錄</h1> <form name="input" action="action.php" method="post"> 賬號:<input type="text" name="user"><br><br> 密碼:<input type="password" name="pwd"><br><br> 性別: <input type="radio" name="sex" value="man">男 <input type="radio" name="sex" value="woman">女 <br><br> 愛好: <input type="checkbox" name="hobby[]" value="basketball">籃球 <inputtype="checkbox" name="hobby[]" value="football">足球 <input type="checkbox" name="hobby[]" value="badminton">羽毛球 <br><br> <input type="submit" value="提交"> </form> </body> </html>
我們看到在表單標簽裏面有兩個屬性,其中一個是action,另外一個是method
當我們點擊submit按鈕之後,這些內容會傳送到action指定的php文件。
而在PHP中有一個超級全局變量$_POST
這個超級全局變量$_POST就是PHP用來接收表單數據的,不過要在表單屬性method中指定post,它才會實現接收的功效。
然後下面我們給出action.php文件的內容:
<?php $user = $_POST[‘user‘]; $pwd = $_POST[‘pwd‘]; $sex = $_POST[‘sex‘]; $hobby=isset($_POST[‘hobby‘])?$_POST[‘hobby‘]:""; echo "您的賬號是:",$user,"<br>"; echo "您的密碼是:",$pwd,"<br>"; echo "您的性別是:",$sex,"<br>"; echo "您的愛好是: "; if(is_array($hobby)){ foreach($hobby as $x){ echo $x . " "; } }
?>
通過點擊submit按鈕,然後這些數據就被轉移到action.php這個頁面,我們的瀏覽器也就跳轉到這個頁面了。
可以看到我們用來接收數據的是$_POST這個變量,裏面放的是表單元素的name值,就會對應的傳送給PHP的這些變量了。
值得註意一點的是,我們在HTML頁面裏面,這個復選框的name是hobby[],因為復選框要傳送多個數組,所以它的name應該是一個數組的形式。
不然的話只會傳送給變量一個值,而我們需要的是復選框的一組值。
當然了,雖然復選框在HTML頁面裏面的name是hobby[]
但是我們在接收的時候仍然是$_POST[‘hobby‘],這個東東實際上已經是一個數組了。
這個時候我們需要做一個保護措施,為了防止有的時候我們的復選框是什麽都沒有選的空值,而不是一個數組,這個時候我們就做一個檢驗
$hobby=isset($_POST[‘hobby‘])?$_POST[‘hobby‘]:"";
isset() 函數用於檢測變量是否已設置並且非 NULL。
如果是空的話呢,那麽$hobby也就賦予空值了,如果不空,那麽$hobby這個變量得到的就是復選框的整個數組的內容了。
然後我們用一個foreach循環來輸出一下這個數組,展示出來。
if(is_array($hobby)){ foreach($hobby as $x){ echo $x . " "; } }
is_array() 函數用於檢測變量是否是一個數組,如果是一個數組的話呢,就展示出來,如果不是一個數組的話呢,就不做任何動作。
PHP 中換行可以用 PHP_EOL 來替代,以提高代碼的源代碼級可移植性
好了,到了這裏,我們的第一個HTML和PHP的交互案例已經做完了。
這也是我們的第一個前端和後端的一個交互案例。
HTML是前端,作為客戶的瀏覽界面,PHP是在服務器端執行的程序,是後端,這就通過案例加深我們對前端和後端,瀏覽器端和服務器端的理解。
然後做完這個交互之後,我們接下來要做的就是PHP和MYSQL之間的交互,也就是說,要基於這個案例,把PHP的值保存到服務器端的數據庫中去。
要知道,如果不進行保存的話,那麽我們每次得到的數據就會消失,只有保存下來,這些數據才不會消失,那麽我們每次打開一個網頁的時候,就會展示我們之前的所有內容
好,我們下一個隨筆就開始寫PHP和MYSQL的交互。
PHP全棧開發(六):PHP與HTML頁面交互