我曾经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
中我如何阅读并使用它。
答案 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 />";
}