首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 表單元素預設選中實現指南:Select、Radio、Checkbox 完整範例

     編輯:PHP 綜合知識

概述

在開發編輯頁面時,需根據資料庫數據讓下拉選單、單選框、複選框自動呈現預設值。本文提供可直接套用的 PHP 實現範例。

1. Select 下拉選單

在 <option> 標籤中動態輸出 selected 屬性:

<select name="wuyeleixing">
    <option value="1" <?php if ($myrow['wuyeleixing'] == 1) echo 'selected'; ?>>住宅</option>
    <option value="2" <?php if ($myrow['wuyeleixing'] == 2) echo 'selected'; ?>>辦公室</option>
    <option value="3" <?php if ($myrow['wuyeleixing'] == 3) echo 'selected'; ?>>營業房</option>
    <option value="4" <?php if ($myrow['wuyeleixing'] == 4) echo 'selected'; ?>>廠房</option>
    <option value="5" <?php if ($myrow['wuyeleixing'] == 5) echo 'selected'; ?>>倉庫</option>
    <option value="6" <?php if ($myrow['wuyeleixing'] == 6) echo 'selected'; ?>>地塊</option>
    <option value="7" <?php if ($myrow['wuyeleixing'] == 7) echo 'selected'; ?>>綜合樓</option>
    <option value="8" <?php if ($myrow['wuyeleixing'] == 8) echo 'selected'; ?>>農牧場</option>
    <option value="9" <?php if ($myrow['wuyeleixing'] == 9) echo 'selected'; ?>>商住樓</option>
    <option value="10" <?php if ($myrow['wuyeleixing'] == 10) echo 'selected'; ?>>賓館酒樓</option>
    <option value="11" <?php if ($myrow['wuyeleixing'] == 11) echo 'selected'; ?>>校舍</option>
</select>

優化建議:使用三元運算子簡化輸出 <?= $myrow['wuyeleixing']==1 ? 'selected' : '' ?>,並確保陣列鍵名加引號($myrow['wuyeleixing'])避免常量未定義警告。

2. Radio 單選框

同名 name 的單選組,僅值匹配項輸出 checked:

<input type="radio" name="dishu" value="3" <?php if ($myrow['dishu'] == 3) echo 'checked'; ?>> 空白
<input type="radio" name="dishu" value="1" <?php if ($myrow['dishu'] == 1) echo 'checked'; ?>> 出讓
<input type="radio" name="dishu" value="2" <?php if ($myrow['dishu'] == 2) echo 'checked'; ?>> 劃撥
<input type="radio" name="dishu" value="4" <?php if ($myrow['dishu'] == 4) echo 'checked'; ?>> 集體

3. Checkbox 複選框

複選框通常對應布林或集合值,判斷邏輯為「值非空/真」即輸出 checked:

<input name="fujia_jiaju" type="checkbox" value="jiaju" <?php if ($myrow['fujia_jiaju']) echo 'checked'; ?>> 家具
<input name="fujia_chuju" type="checkbox" value="chuju" <?php if ($myrow['fujia_chuju']) echo 'checked'; ?>> 廚具
<input name="fujia_woju" type="checkbox" value="woju" <?php if ($myrow['fujia_woju']) echo 'checked'; ?>> 臥具
<input name="fujia_TV" type="checkbox" value="TV" <?php if ($myrow['fujia_TV']) echo 'checked'; ?>> 電視機

注意:若資料庫存儲為逗號分隔字符串(如 "jiaju,chuju"),需先轉為陣列 in_array('jiaju', explode(',', $myrow['fujia'])) 判斷。

進階封裝建議

為提升可維護性,建議封裝輔助函數:

function selected($value, $target, $echo = true) {
    $attr = $value == $target ? 'selected' : '';
    return $echo ? $attr : ($attr ? ' selected' : '');
}

function checked($value, $target, $echo = true) {
    $attr = $value == $target ? 'checked' : '';
    return $echo ? $attr : ($attr ? ' checked' : '');
}

模板中即可簡潔調用:<option value="1" <?= selected($myrow['wuyeleixing'], 1) ?>>

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved