从动态表单发布(多行)

时间:2012-06-15 17:43:42

标签: php mysql insert

我有一个表单,可以动态创建表格行(字段)(添加删除),最多七个。每个附加表单行都附加一个实数(即:name =“product”,next = name =“product2”..“Product3”等)。所以我认为我只会使用isset来查看发布的内容,只插入已发布的内容但是我缺乏技能导致这种情况无效。请参阅下面的代码:

    mysql_select_db("inventory", $con);

    $sql="INSERT INTO shipped (id, type, client, product, color, quantity)
    VALUES ('$_POST[productid]','$_POST[type]','$_POST[client]','$_POST[product]','$_POST[color]','$_POST[quantity]')";
    if( isset($_POST['productid2']) ) {
    "INSERT INTO shipped (id, type, client, product, color, quantity)
    VALUES ('$_POST[productid2]','$_POST[type2]','$_POST[client2]','$_POST[product2]','$_POST[color2]','$_POST[quantity2]')";
    }

我计划为每个产品添加“isset”,但事实证明这只会插入一组post值而不是两者。我将要达到product7(最多七个插件)。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

您可以在输入字段中使用该数组

<input type="text" name="productid[]" />
<input type="text" name="type[]" />
<input type="text" name="client[]" />
<input type="text" name="product[]" />
<input type="text" name="color[]" />
<input type="text" name="quantity[]" />

在服务器端:

foreach($_POST['product'] as $k => $v){
   $sql="INSERT INTO shipped (id, type, client, product, color, quantity) VALUES 
       ($_POST['productid'][$k],$_POST['type'][$k],$_POST[client][$k]','$v','$_POST[color][$k]','$_POST[quantity][$k]')";

}

答案 1 :(得分:0)

好的,所以我确实喜欢另一个答案,因为它似乎比我最终使用的解决方案更优雅 - 但事实是另一个答案只是没有用。所以我的解决方案只是检查是否设置了下一个表单字段集,如果是,则显示正确的插入。请参见第一部分:

mysql_select_db("inventory", $con);

if( !isset($_POST['productid2']) ) {
$sql="INSERT INTO shipped (id, type, client, product, color, quantity)
VALUES ('$_POST[productid]','$_POST[type]','$_POST[client]','$_POST[product]','$_POST[color]','$_POST[quantity]')";
}

if( isset($_POST['productid2']) ) {
$sql="INSERT INTO shipped (id, type, client, product, color, quantity)
VALUES ('$_POST[productid]','$_POST[type]','$_POST[client]','$_POST[product]','$_POST[color]','$_POST[quantity]'),
('$_POST[productid2]','$_POST[type2]','$_POST[client2]','$_POST[product2]','$_POST[color2]','$_POST[quantity2]')";
}

if( isset($_POST['productid3']) ) {
$sql="INSERT INTO shipped (id, type, client, product, color, quantity)
VALUES ('$_POST[productid]','$_POST[type]','$_POST[client]','$_POST[product]','$_POST[color]','$_POST[quantity]'),
('$_POST[productid2]','$_POST[type2]','$_POST[client2]','$_POST[product2]','$_POST[color2]','$_POST[quantity2]'),
('$_POST[productid3]','$_POST[type3]','$_POST[client3]','$_POST[product3]','$_POST[color3]','$_POST[quantity3]')";
}

再像这样四次......每次都添加其他值。这对我有用,因为我的表单字段最多只能添加七次,所以它不需要是无限的。因此,如果您只允许添加少量表单字段,这将很有效。