2013-04-11 65 views
0

我曾经有register_globals转过来ON(我知道 - 坏坏差可怕坏了)现在我正在改变它,具体应用是我的DVD收藏。添加DVD提供了一组用于流派/类别(即戏剧,喜剧等)的复选框。每种流派都出自数据库表,所以我可以根据需要添加新的流派。这里的问题是,它从这个db表中的缩写中生成它的字段名(复选框名称)。访问表单中的动态变量

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

可以看到你的代码,使远吗? – showdev 2013-04-11 21:33:50

+1

再次关闭全局注册表。否则其他人会拒绝你;) – 2013-04-11 21:34:06

+0

是的,你的一些旧代码会帮助很多......我无法清楚你的目标。 – 2013-04-11 21:34:43

回答

1

见这个例子:

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

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

} 
2

鉴于一些复选框是这样的:

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

你想最终$_POST['genre']是一个数组。 Asuming戏剧和神秘检查过,你会最终

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

记住选中复选框不与表单提交,所以如果你在$_POST['genre']得到的条目,它在形式选择。

要检查是否选择在您的数据库类别,你可以不喜欢

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

这是正确的方法...不应将'name'用作'value' ... – 2013-04-11 21:51:22