php - 从表单访问动态变量

标签 php mysql variables dynamic

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

IE 我会有:

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

所以我之前所做的是,使用创建条目的脚本,它会遍历缩写名称列表,如果它与输入匹配 ($_POST['drama']) , 则表示这张 DVD 属于该类别。

现在的问题是,在关闭全局变量 的情况下,我如何动态收集那些$_POST 值?我尝试遍历数据库并吐出一个连接变量,试图以这种格式声明它们:

$drama=$_POST['drama'];

这没有用,因为我把函数和变量混在一起了,结果一团糟。

我希望有人能回答我如何读取 $_POST 数组 并使用它。

最佳答案

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

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

关于php - 从表单访问动态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15959236/

相关文章:

php - if(isset($_POST ['Submit' ])) 未获取状态值

PHP mail() 函数不发送电子邮件

php - 无法通过 AWS EC2 实例使用 PHP 连接到 AWS MYSQL RDS 实例

sql - 慢 SQL 查询 : using the same table in two different joins causes query to become 10x slower!

JavaScript:特殊变量/参数?

php - mysql - 一次更新两条记录

php - MySql 搜索两个组合字段的查询

javascript - 从函数返回更新变量

java - 如何创建一个存储用户输入的java方法?

php - 使用 fopen 和append 创建 PHP 数组