从表单访问动态变量

时间:2013-04-11 21:31:08

标签: php mysql variables dynamic

我曾经register_globals转过ON(我知道 - 糟糕的坏可怕坏)现在我正在改变它,具体应用是我的DVD收藏。添加DVD呈现一组类型/类别的复选框(即戏剧,喜剧等)。每个类型都来自数据库表,因此我可以根据需要添加新类型。这里的问题是它从 db 表中的缩写生成其fieldname(复选框名称)。

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中我如何阅读并使用它。

2 个答案:

答案 0 :(得分:2)

给出一些像这样的复选框:

<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
}

答案 1 :(得分:1)

见这个例子:

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

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

}