PHP如何处理具有动态生成字段的表单?

时间:2013-04-19 16:56:34

标签: php forms

我正在尝试处理一个我不知道表单字段将会是什么的表单。这仍然可以在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.
}

?>

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

5 个答案:

答案 0 :(得分:5)

当然,仅iterate数组中的所有项目$_POST

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

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

答案 1 :(得分:1)

你可以像这样迭代所有$ _POST键。

foreach($_POST as $key => $value)
{
    echo $key.": ".$value;
}

答案 2 :(得分: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 */
}

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

foreach($_POST as $key => $value){
   //$key contains the name of the field
}