【问题标题】:accessing dynamic variables from a form从表单访问动态变量
【发布时间】:2013-04-04 06:21:51
【问题描述】:

我曾经有 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 中阅读并使用它。

【问题讨论】:

  • 目前可以看到你的代码吗?
  • 再次关闭注册全局变量。否则其他人会让你失望;)
  • 是的,你的一些旧代码会很有帮助......我无法清楚你的目标。
  • 请重新写下问题,使其更加具体和清晰。到目前为止,它非常模糊。
  • 名称 = 'drama' 的字段的发布键将始终为 $_POST['drama']。您可以 foreach $_POST 数组以检索分离的键和值,但它不会改变事情。但是您仍然可以在不知道名称的情况下实例化 $_POST['drama'] 的不同变量,而是通过从值的数组中获取偏移量

标签: php mysql variables dynamic


【解决方案1】:

给定一些这样的复选框:

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

【讨论】:

    【解决方案2】:

    看这个例子:

    foreach ($_POST as $key => $value) {
    
        echo "name: $key, value: $value<br />";
    
    }
    

    【讨论】:

      猜你喜欢
      • 2017-06-21
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多