1

我正在尝试处理我提前不知道表单字段将是什么的表单。这仍然可以在 PHP 中完成吗?

例如,我有这个 html 表单:

<form method="post" action="process.php">
     <?php get_dynamic_fields(); // this gets all the fields from DB which I don't know ahead of time what they are. ?>
     <input type="submit" name="submit" value="submit" /> 
</form>

这是我在 PHP 进程文件中的内容

<?php
if ( isset( $_POST['submit'] ) && $_POST['submit'] === 'submit' ) {
     // process form here but how do I know what field names and such if they are dynamic.
}

?>

这里有一个警告:假设我无法提前从数据库中获取数据,还有办法做到这一点吗?

4

5 回答 5

5

当然,只需遍历$_POST数组中的所有项目:

foreach ($_POST as $key => $value) {
    // Do something with $key and $value
}

请注意,您的提交按钮将存在于数组$_POST中,因此您可能需要编写一些代码来处理它。

于 2013-04-19T16:58:18.080 回答
1

您可以像这样遍历所有 $_POST 键。

foreach($_POST as $key => $value)
{
    echo $key.": ".$value;
}
于 2013-04-19T16:58:57.050 回答
1

这将为您提供 HTML 表单中使用的字段名称。

$field_names = array_keys($_POST);

您也可以使用遍历 POST 数组

foreach($_POST as $field_name => $field_value) {
    // do what ever you need to do
    /* with the field name  and field value */
}
于 2013-04-19T17:00:15.157 回答
0

从您的函数中获取字段的名称get_dynamic_fields并将它们传递到一个隐藏的输入中,该输入始终是一个具有静态名称的数组。然后解析它以获取输入的名称以及输入的数量。

于 2013-04-19T16:59:02.570 回答
0

你可以遍历 `$_POST 数组的所有部分;

foreach($_POST as $key => $value){
   //$key contains the name of the field
}
于 2013-04-19T17:00:06.980 回答