1

我有一个表单,可以动态(添加-删除)创建最多七个表单行(字段)。每个附加的表格行都有一个附加的数字(即:name="product" 接下来是 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”,但事实证明这只会插入一组帖子值,而不是两者。我将有多达 product7 (所以最多七个插入)。有什么帮助吗?

4

2 回答 2

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]')";

}
于 2012-06-15T17:57:52.107 回答
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]')";
}

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

于 2012-06-16T00:13:03.260 回答