簡體   English   中英

從表單訪問動態變量

[英]accessing dynamic variables from a form

我曾經將register_globals ON (我知道-糟糕糟糕糟糕非常糟糕),現在我要對其進行更改,並且特定的應用程序是我的DVD收藏集。 添加DVD會顯示一組流派/類別(即戲劇,喜劇等)的復選框。 每個流派都來自數據庫表,因此我可以根據需要添加新流派。 這里的問題是它從該數據庫表中的縮寫生成其字段名(復選框名稱)。

IE瀏覽器,我將擁有:

<input type="checkbox" name="drama" />Drama
<input type="checkbox" name="bio" />Biography
(etc)

因此,我之前所做的是,使用創建條目的腳本,它將在縮寫名稱列表中運行,並且如果它與輸入($_POST['drama'])相匹配,則表明該DVD屬於該名稱。類別。

現在的問題是,在全局變量關閉的情況off ,如何動態收集這些$_POST values 我嘗試遍歷數據庫並吐出一個串聯變量,試圖以這種格式聲明它們:

$drama=$_POST['drama'];

這行不通,因為我將函數與變量混合在一起,這造成了嚴重的混亂。

我希望有人對如何讀取$_POST array並使用它有一個答案。

給定一些這樣的復選框:

<input type="checkbox" name="genre[]" value="drama" />
<input type="checkbox" name="genre[]" value="comedy" />
<input type="checkbox" name="genre[]" value="mystery" />

您最終將$_POST['genre']作為數組。 假設戲劇和神秘都被選中了,你最終會得到

$_POST['genre'] = array(
    0 => 'drama',
    1 => 'mystery'
);

請記住,未選中的復選框不會與表單一起提交,因此,如果在$_POST['genre']獲得條目,則在表單中將其選中。

要檢查是否已選擇數據庫中的類別,可以執行以下操作

if (in_array('drama', $_POST['genre'])) {
  ... drama is selected
}

請參閱以下示例:

foreach ($_POST as $key => $value) {

    echo "name: $key, value: $value<br />";

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM