« 81. 如何設計 radio box:選擇鈕? | (回到Blog入口) | 83. 如何設計 hidden:隱藏欄位? »

82. 如何設計 select: 選擇欄位?

jollen 發表於 October 27, 2006 9:57 PM

select 選擇欄位有 2 種型式:

1. 單選式
2. 複選式

底下是單選式的 select 欄位範例,其中顯示列數可以由 <select> 標籤的 size 欄位指定:

<select name="book" size="1"> <option value="Linux Administrator">Linux Administrator</option> <option value="PHP Programming">PHP Programming</option> <option value="MySQL">MySQL</option> </select>

指定 size="1" 表示 select 單選式輸入欄位每次只顯示一個項目。在 <select> 標籤裡加上 multiple 即可變成複選式 select 欄位。

php
圖: 單選式 select 欄位

底下是複選式的 select 欄位範例,將 size 改成 3 並加上 multiple 即可:

<select name="book[]" size="3" multiple> <option value="Linux Administrator">Linux Administrator</option> <option value="PHP Programming">PHP Programming</option> <option value="MySQL">MySQL</option> </select>

php
圖: 複選式 select 欄位

一般當我們使用複選式 select 表單時,我們都會將顯示的列數設定成多列,以方便使用者選取。在這裡要特別提醒一點,我們在設計複選式 select 表單欄位時,在 name 欄位部份我們是指定 book[] 也就是陣列的型式,目的是要方便處理取得的資料。

size="3" 表示一次顯示 3 個選項,在單選式 select 欄位也可以指定。讀取單選式的 select 表單輸入欄位方法很簡單,與 text 表單的讀取方法一樣,直接由 name 欄位所指定的變數名稱傳回使用者所選擇的資料。

讀取單選式 select 欄位範例程式:

echo "Your choice: $book";

輸出結果範例:

Your choice: PHP Programming

當使用者選擇 PHP Programming 項目後,由 $book 變數傳回使用者所選擇的值。

在複選式 select 輸入欄位方面,假設使用者選擇了 Linux Administrator 與 PHP Programming 兩個選項,則 PHP 讀取複選式 select 欄位的方法為:

book[0] 存放 "Linux Administrator" book[1] 存放 "PHP Programming"

要讀取所有的項目,可以使用陣列函數 - count()。請看底下的範例:

<?php
$n = count($book); //計算 $book 陣列有幾個元素 for ($i = 0; $i < $n; $i++) echo $book[$i]."<br>\n";
?>

如果是 PHP 4/5 的話,也可以利用新的 foreach 敘述來改寫程式:

<?php
$book = array ("Linux", "PHP", "Java");
foreach($book as $value) { echo $value. "<br>\n"; }
?>

--jollen

版權聲明

請參閱頁面底部的 CC 授權條款。此外,Jollen's PHP 專欄禁止引用、修改與轉貼,如果您想與朋友分享的話,我們只允許網站連結(hyperlink)的形式。

發表一個評論

(如果你此前從未在此 Blog 上發表過評論,則你的評論必須在 Blog 主人驗證後才能顯示,請你耐心等候。)

| Top | Jollen's Forum |
Jollen's PHP 專欄採用 Attribution-NonCommercial-NoDerivs 2.5 授權條款
Copyright(c) 2001-2007,2010 www.jollen.org