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

HTML checkbox name 屬性帶 [] 與不帶差異:PHP/Java 後端自動轉陣列

     編輯:程式設計綜合問答

前端兩組碼:

1. name="hobby"      // 不帶 []
2. name="hobby[]"    // 帶 []

後端接收行為

後端語言/框架name="hobby"name="hobby[]"
PHP僅取得**最後一個**勾選值 (字串)自動轉為 **陣列** $_POST['hobby'] = ['a','b']
Java Servletrequest.getParameter("hobby") 取第一個;
getParameterValues("hobby") 取陣列
同不帶 [],getParameterValues 均可取陣列
ASP.NET Core模型繫結需 List<string> Hobby 才能收陣列同不帶 [],慣例加 [] 提醒前端這是多選
Node.js (Express + body-parser)單值或陣列視勾選數量而定 (不穩定)強制解析為陣列 (穩定)

最佳實踐

  • **統一加上 []**,明確語意「這是多選陣列」,前後端溝通零歧義。
  • 後端統一用 getParameterValues / List<string> / request.body.hobby (陣列) 接收。
  • 單選框 (radio) **不加 []**,語意互斥。

加 [] 是「約定優於配置」的典型應用,減少溝通成本與 Bug。

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