作者lgzenith (封影)
看板PHP
標題Re: [心得] 輸出<select>下拉選單的小撇步
時間Mon Jun 23 15:23:02 2008
※ 引述《JYHuang (夏天到了,冷不起來了說)》之銘言:
: 有時看到一些版友在問問題順便po上程式碼時,覺得其實可以運用一些
: 小方法來精簡,例如下拉式選單 (寫程式不就是要偷懶嘛 XD )
: 小弟的方法是先寫好一個函式。
: function make_select($array,$default_key=null,$attributes=null)
: {
: $htm = "<select $attribuges >";
: foreach($array as $key=>$text){
: if ($key == $default_key)
: $htm .= "<option value='$key' selected'>$text";
: else
: $htm .= "<option value='$key'>$text";
: }
: $htm .= "</select";
: return $htm;
: }
: $array: 二維陣列,第二維存option的value值和文字
: $default_key: 選取的預設值
: $attributes : 就name=.. class=.. 那些阿殺不魯的東西 XD
: 這樣一來,當你要建立一個下拉式選單時,
: 直接把陣列丟進去函數裡 ( 搭配SQL時更是下菜啊 :D~ )
: 就不用key那麼一大串的html和下一堆判斷式來判斷是否有select了
: PS: radio,checkbox 也可以照這種方法來料理喔~~
: (快中午了,還寫什麼程式...快去吃飯 XDD )
照個人喜好修改一下
function make_select($array,$default_key=null,$attributes=null){
$htm = "<select $attribuges >";
$str = '<option value="%s"%s>%s</option>';
foreach($array as $key=>$text){
$sel = '';
if ($key == $default_key){
$sel = ' selected="selected"';
}else{
$sel = '';
}
$htm .= sprintf($str, $key, $sel, $text );
}
$htm .= '</select>';
return $htm;
}
後來比較喜歡用這種方式,我個人認為比較容易讀,因為以前"$xxx".'xxx'這種寫法
我看起來實在是很不舒服。
還有就是盡量照網頁標準寫法來
到現在都還沒有吃午餐,為什麼我還在寫程式= =
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.195.65
※ 編輯: lgzenith 來自: 220.130.195.65 (06/23 15:26)
※ 編輯: lgzenith 來自: 220.130.195.65 (06/23 17:15)
推 liaosankai :$attribuges錯了= =,是$attributes 06/24 17:57
推 liaosankai :</select>和</option>後面都補個"\n"斷行吧 06/24 18:00
→ liaosankai :$select = "<select$attributes>"."\n";中間不要空 06/24 18:01
→ liaosankai :上一行是為了不要有<select >多一個空格,但方法錯了 06/24 18:12
→ liaosankai :補一行if($attributes==null){$attributes=' ';} 06/24 18:13