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

PHP 處理復選框數組的標準姿勢

     編輯:PHP 綜合知識

HTML 表單關鍵點

復選框的 name 屬性必須以 [] 結尾,PHP 才會自動將其解析為數組:

<form method="post" action="checkbox.php">
    <input type="checkbox" name="colors[]" value="red"> 紅色
    <input type="checkbox" name="colors[]" value="green"> 綠色
    <input type="checkbox" name="colors[]" value="blue"> 藍色
    <input type="submit" value="提交">
</form>

PHP 端接收與遍歷

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 直接獲取數組,若未勾選則為 null
    $selected = $_POST['colors'] ?? [];
    
    // 安全過濾
    $selected = array_map('htmlspecialchars', $selected);
    
    echo "您選擇了:" . implode('、', $selected);
    
    // 或逐個處理
    foreach ($selected as $color) {
        // 業務邏輯...
    }
}
?>

進階:預設值與驗證

$allowed = ['red', 'green', 'blue', 'yellow'];
$selected = array_intersect($_POST['colors'] ?? [], $allowed); // 白名單過濾

if (empty($selected)) {
    throw new Exception('請至少選擇一項');
}

常見坑點

  • 未勾選任何項: $_POST['colors'] 不會存在,直接訪問會報 Notice,務必用 ?? [] 或 isset() 判斷。
  • 單個復選框: 若只有一個選項,仍建議用 name="item[]" 保持數組結構,前後端處理統一。
  • 值為空字符串: <input type="checkbox" name="x[]" value=""> 會傳遞空字符串,建議賦予有意義的值。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved