php中一個完整表單處理實現代碼

來源:互聯網
上載者:User

一個完整表單處理
下面我們將建立一個複雜的表單,代碼如下所示。 複製代碼 代碼如下:<form action="someform.php" method="post">
<table width="541" border="0">
<tr>
<td width="26%">姓名:</td>
<td width="74%"><input type="text" name="username" value="raymond" id="username"/></td>
</tr>
<tr>
<td>密碼:</td>
<td><input type="password" name="password" maxlength="10" id="password"/></td>
</tr>
<tr>
<td>年齡:</td>
<td>
<select name="age">
<option value=">16">小於16</option>
<option value="16-30" selected>16-30</option>
<option value="31-50">31-50</option>
<option value="51-80">51-80</option>
</select>
</td>
</tr>
<tr>
<td valign="top">自我介紹:</td>
<td><textarea name="intro" rows="3" cols="50" id="intro">請輸入您的自我介紹</textarea></td>
</tr>
<tr>
<td><br />
體育愛好: </td>
<td><input type="radio" name="fave_sport" value="tennis" checked>
網球
<input type="radio" name="fave_sport" value="football">
足球
<input type="radio" name="fave_sport" value="baseball">
籃球
<input type="radio" name="fave_sport" value="polo">
保齡球 </td>
</tr>
<tr>
<td> 開發語言:</td>
<td><input name="from" type="hidden" id="from" value="註冊表單">
<input type="checkbox" name="languages[]" value="php" checked id="languages[]">
php
<input type="checkbox" name="languages[]" value="java" id="languages[]">
java
<input type="checkbox" name="languages[]" value="perl" id="languages[]">
perl
<input type="checkbox" name="languages[]" value="cpp" id="languages[]">
c++
<input type="checkbox" name="languages[]" value=".net" id="languages[]">
.NET
<input type="checkbox" name="languages[]" value="delphi" id="languages[]">
delphi </td>
</tr>
<tr>
<td valign="top"><br>
<label> 開發工具:</label></td>
<td><select name="develop_ide[]" size="5" multiple id="develop_ide[]">
<option value="ZDE" selected>Zend Studio</option>
<option value="Eclipse">Eclipse</option>
<option value="Editplus">Editplus</option>
<option value="Ultraedit">Ultraedit</option>
<option value="Other">Other</option>
</select></td>
</tr>
<tr>
<td valign="top"> </td>
<td><input type="submit" name="btn_submit" value="提交"/></td>
</tr>
</table>
</form>

該表單包括了常用表單元素:單行文字框、多行文字框、單選項(radio)、多選項(checkbox),以及多選菜單。下面進行詳細的說明。
maxlength是與密碼文字框關聯的屬性,它限制使用者輸入密碼的最大長度為10個字元。
age列表框是列表菜單,它的命名屬性下都有自己的值供選擇。selected是一個特定的屬性選擇元素,如果某個option附加有該屬性,在顯示時就把該項列為第一項顯示。
intro文字框中的內容,按照rows和cols顯示文字、行和列寬。
fave_sport是一組選項按鈕(radio),我們要按組命名元素名稱,比如這一組選項按鈕都叫做fave_sport,使用者只可選擇一個,發送指令碼端也只存在一個值。
和單選項一樣,所有多選項成員也須有同名的屬性,而屬性名稱需要添加括弧[],這樣就把多選項的值以數組形式發送給PHP,languages就是這種形式。
checked標籤是指單選項和多選項中的某個值,預設已經被選擇。

上面表單的顯示畫面5-3所示。

因為上面HTML中的form表單使用的是POST方法傳遞資料,所以使用者提交的資料會儲存到$_POST或$_REQUEST的超級全域數組中,我們根據$_POST數組中的值就可以處理提交的資料。

將上面表單中資料提交到someform.php指令碼,該指令碼的處理邏輯如下: 複製代碼 代碼如下://通過判斷按鈕的變數名是否在$_POST中定義,如果有表示該表單已提交
if(isset($_POST["btn_submit"])){
if (empty($_POST['username'])){
echo "您沒有輸入使用者名稱";
exit(0);
}
if (empty($_POST['password'])){
echo "您沒有輸入密碼: ";
exit(0);
}
echo "您的使用者名稱: ".$_POST['user_name']."
";
echo "您的密碼(明文): ".$_POST['password']."
";
echo "您的年齡: ".$_POST['age']."
";
if (!empty($_POST['languages'])){
echo "您選擇的語言為:";
//處理使用者選擇興趣的checkbox按鈕產生的數組
foreach ($_POST['languages'] as $lang){
echo $lang. " ";
}
} else {
echo "您沒有輸入任何興趣愛好";
}
if (!empty($_POST['develop_ide'])){
echo "您使用的開發工具為:";
//處理使用者多選開發工具菜單產生的數組
foreach ($_POST['develop_ide'] as $ide){
echo $ide. " ";
}
} else {
echo "您沒有選擇開發工具";
}
echo "您的自我介紹: ".nl2br($_POST['intro'])."<br />";//nl2br(),在字串中的每個新行 (\n) 之前插入 HTML 分行符號 (<br />)
";
echo "網頁隱藏值(通過hidden標籤值傳遞): ".$_POST['from']."
";
}
?>

說明:使用POST方式提交表單,通過HTTP協議的header部分傳遞表單資料,理論上資料的大小無上限。不過,在使用PHP進行POST提交時,檔案大小受PHP設定檔(php.ini)限制,我們可以修改php.ini檔案中的post_max_size參數,可將預設的2M位元組,修改為自己需要的大小,但由於HTTP協議的特性,這個值不宜設定過大,最大以8M為宜。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.