在PHP 中透過POST 要求傳送表單資料時,可能會遇到多個輸入元素共用相同名稱的情況屬性。這就提出了一個問題:
你能從 $_POST 陣列中存取所有同名欄位的值嗎?
答案是不能。只有具有給定名稱的最後一個輸入元素在 $_POST 中可用。
要解決此限制,您應該使用 name="foo[]" 作為輸入名稱屬性。這將在 $_POST 中產生一個數組,其中包含具有相同名稱的輸入元素的所有值。例如:
<form method="post"> <input name="a[]" value="foo"> <input name="a[]" value="bar"> <input name="a[]" value="baz"> <input type="submit"> </form>
在這種情況下,$_POST['a'] 將是一個包含值「foo」、「bar」和「baz」的陣列。
它是需要注意的是,使用不帶 [] 的普通名稱屬性不會導致所需的行為。這是因為 PHP 在遇到重複名稱時會覆寫 $_POST 中的現有值。
如果您仍然需要存取原始表單數據,可以從 file_get_contents('php://input') 提取它。但是,您需要手動將此字串解析為數組。
以上是如何存取 PHP 的 $_POST 數組中同名的多個表單欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!