0

我对php相当陌生。我设置了一个表单,用户可以从数据库生成的项目列表中进行多项选择;该列表可以是不同长度的未决预定路径。此外,在生成的部分之前和之后还有其他字段。

我将如何从 $_POST 方法获取生成的字段?有没有办法做类似的事情 $_POST['item' 。$i]?

这是一个生成的示例: global $dbc;

            $query="SELECT * FROM categories";
                $result = mysqli_query($dbc, $query) or die(mysqli_error($dbc));
                    $row = mysqli_fetch_array($result);

                    if($row > 0){


while($row = mysqli_fetch_array($result)){
echo '<tr>
    <td><input type="checkbox" name="item' . $row['category_id'] . '" value="' . $row['category_id'] . '">' . $row['category_name'] . '<br></tr>';

} 回声'';

4

2 回答 2

0

我最近在做类似的事情,我需要收集一组已添加到 DOM 的可变长度数据数组。我不确定这是否是最佳做法,但我最终这样做了:

foreach ($_POST as $key=>$obj) {
    if (preg_match('/^row\d+$/',$key)) {
        // some code to manipulate $obj
    }
}

在 preg_match 上查看更多信息

我已经命名了表中的每个输入:

name="row"+i+"[fieldName]"

同样,我不确定这是否是“最佳实践”,但它适用于我的目的。我希望它有帮助!

于 2013-07-25T20:08:18.003 回答
0

如果您有多个使用命名约定从数据库中动态显示的表单项item-$i。(item-0、item-1、item-2 等...),您可以使用以下格式从帖子中动态提取...

$_POST["item-$i"]

有时我会从 POST 中提取所有内容,并通过foreach.

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

这将创建名为 $item-0、$item-1、$item-2 等的变量...要从中提取值,我将使用变量 variables ${"item-{$i}"}

变量变量文档

于 2013-07-25T20:09:40.670 回答