0

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

IE 我将拥有:

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

所以我之前所做的是,使用制作条目的脚本,它将遍历缩写名称列表,如果它与 input 匹配($_POST['drama']),则表明该 DVD 属于该类别。

现在的问题是,随着全局变量的转变off,我怎样才能动态地收集这些变量$_POST values?我尝试遍历数据库并吐出一个连接变量,试图以这种格式声明它们:

$drama=$_POST['drama'];

这不起作用,因为我将函数与变量混合在一起,这造成了可怕的混乱。

我希望有人能回答我如何阅读$_POST array和使用它。

4

2 回答 2

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
}
于 2013-04-11T21:39:18.437 回答
1

看这个例子:

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

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

}
于 2013-04-11T21:34:54.273 回答