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

PHP 判斷表單核取方塊勾選狀態完整範例

     編輯:PHP 綜合知識

處理多個同名核取方塊(checkbox)是表單開發常見需求。關鍵在於 name 屬性使用陣列語法 name="s[]",PHP 才會將勾選的值自動收集成陣列。

HTML 表單

<form action="checkbox.php" method="post">
    <input name="s[]" type="checkbox" value="3" /> 3<br>
    <input name="s[]" type="checkbox" value="7" /> 7<br>
    <input name="s[]" type="checkbox" value="1" /> 1<br>
    <input name="s[]" type="checkbox" value="15" /> 15<br>
    <input type="submit" value="送出">
</form>

接收與處理

// 直接取得陣列,未勾選則為空陣列或未設定
$selected = $_POST['s'] ?? [];

// 顯示原始結構
print_r($selected);
// 輸出範例:Array ( [0] => 7 [1] => 15 )

// 逐項處理
foreach ($selected as $value) {
    echo "選項 {$value} 被勾選<br>";
}

進階應用:資料庫寫入

$selected = $_POST['s'] ?? [];
if ($selected) {
    $placeholders = implode(',', array_fill(0, count($selected), '?'));
    $sql = "INSERT INTO user_options (user_id, option_id) VALUES " .
           implode(',', array_fill(0, count($selected), "({$userId}, ?)"));
    $stmt = $pdo->prepare($sql);
    $stmt->execute($selected);
}

常見錯誤提醒

  • 忘記 name="s[]" 的方括號 → 只會收到最後一個值
  • 未檢查 isset($_POST['s']) 直接迴圈 → 發生警告
  • 值型別不一致(字串 vs 整數)→ 資料庫查詢失敗
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved