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

PHP 獲取 Select 下拉框選中值完整指南

     編輯:PHP 相關知識

HTML 表單基礎結構

要獲取下拉框的值,首先確保 <select> 元素有 name 屬性,表單採用 POST 或 GET 方法提交。

標準表單示例

<form action="process.php" method="post">
    <label for="category">選擇分類:</label>
    <select name="category" id="category">
        <option value="">-- 請選擇 --</option>
        <option value="tech">科技</option>
        
        
        
    
    

PHP 後端處理

<?php
// process.php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 獲取選中值(自動過濾 XSS)
    $category = isset($_POST['category']) ? htmlspecialchars(trim($_POST['category'])) : '';
    
    if ($category === '') {
        echo "請選擇一個分類";
    } else {
        echo "您選擇的分類是:$category";
        // 進一步業務邏輯...
        // 如:根據分類查詢數據庫
        // $stmt = $pdo->prepare("SELECT * FROM articles WHERE category = ?");
        // $stmt->execute([$category]);
    }
}
?>

多選下拉框處理

<!-- HTML:添加 multiple 屬性,name 以 [] 結尾 -->
<select name="tags[]" id="tags" multiple>
    <option value="php">PHP</option>
    <option value="javascript">JavaScript</option>
    <option value="mysql">MySQL</option>
    <option value="linux">Linux</option>
</select>

<?php
// PHP 獲取的是數組
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $tags = isset($_POST['tags']) ? $_POST['tags'] : [];
    
    if (empty($tags)) {
        echo "請至少選擇一個標籤";
    } else {
        echo "選中的標籤:" . implode(', ', array_map('htmlspecialchars', $tags));
        // 處理多選值,如批量插入數據庫
    }
}
?>

常見問題與解決

問題原因解決方案
獲取到空值select 缺少 name 屬性添加 name="your_name"
多選只獲取最後一個name 未加 [] 後綴name="tags[]" 而非 name="tags"
值包含特殊字符導致錯誤未轉義輸出使用 htmlspecialchars() 輸出時轉義
默認選中不生效option 缺少 selected 屬性

安全最佳實踐

  1. 始終驗證輸入:in_array($category, $allowedCategories)
  2. 使用預處理語句防止 SQL 注入
  3. 輸出到 HTML 時使用 htmlspecialchars()
  4. CSRF 保護:表單添加令牌驗證
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved