如何发布SQL生成的字段?

时间:2013-07-25 19:42:37

标签: php post dynamically-generated

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

我如何从$ _POST方法获取生成的字段?有没有办法像$ _POST ['item'那样做。 $ I]?

以下是生成的示例: 全球$ 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>';

} echo'';

2 个答案:

答案 0 :(得分:0)

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

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

see more on preg_match

我已在表格中命名了每个输入:

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

同样,我不确定这是否是“最佳做法”,但它符合我的目的。我希望它有所帮助!

答案 1 :(得分:0)

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

$_POST["item-$i"]

有时我将所有内容从POST中拉出来并通过foreach将其分配给变量。

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

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

Variable Variables Doc