【问题标题】:How to save rows of selected products and its qty to a MySQL DB?如何将选定产品的行及其数量保存到 MySQL 数据库?
【发布时间】:2019-05-24 03:57:32
【问题描述】:

我有一个包含产品行的 html 表。用户可以勾选复选框以从列表中选择产品并输入其数量。用户可以选择第 1 行并输入其数量,第 3 行并输入其数量或第 6 行并输入其数量。我可以保存产品 ID,但我无法保存用户输入的数量。如何将所选产品的行及其数量保存到 MySQL 数据库?

这是我列出产品及其输入框的方式:

while($iGroups < count($listeProduct))
{
 ?> 
 <tr>
 <td>
 <input type="checkbox" name="productSelect[]" id="productSelect_<?php echo $listeDoc[$iGroups]->PRODUCT_ID ?>" value="" <?php echo $checkedProduct; ?> ><?php echo $listeDoc[$iGroups]->PRODUCT_NAME; ?>
</td>
<td>
<input type="text" name="productQty[]" id="productQty_<?php echo $listeDoc[$iGroups]->PRODUCT_ID ?>" size="45" maxlength="100" class="form-control1" value="" />
</td>
</tr>
<?php
 $iGroups++;
}
?>

在控制器中,这是我在提交后处理 $_POST 的方式。 如何获取用户在输入框中输入的数量? :

$producySelected = $_POST['docSelect'];
$productQty = $_POST['comboNumDoc'];

$icount = 0;
while($icount < count($producySelected))
{
    $PRODUCT_ID = $productSelected[$icount]->product_id;
    $QTY = ??

    $icount ++; 
}

感谢您的热心帮助。

【问题讨论】:

  • 您可以简单地在输入字段的名称中使用产品 ID,以便将它们动态结构化为“productQty-ID”。然后您可以使用$_POST['productQty-'.$PRODUCT_ID] 轻松获取控制器循环中的值
  • 能否请您举个例子说明您的意思...谢谢 kaarto
  • 基本上和你现在输入id一样,输入名字也是一样。然后var_dump($_POST) ;提交后你会看到它是如何工作的
  • 感谢您的回复,我遇到了麻烦,这就是您的意思:
  • 可以,但不需要 []。我在我的手机上,所以不能给出直接的例子,但是一旦你尝试了,你就会明白的。 :)

标签: javascript php mysql ajax


【解决方案1】:

您可以在输入字段名称中添加productId,然后您可以在product_id 的基础上获取值,如下所示。

while($iGroups < count($listeProduct))
    {
     ?> 
     <tr>
     <td>
     <input type="checkbox" name="productSelect[<?php echo $listeDoc[$iGroups]->PRODUCT_ID ?>]['product_id']" id="productSelect_<?php echo $listeDoc[$iGroups]->PRODUCT_ID ?>" value="" <?php echo $checkedProduct; ?> ><?php echo $listeDoc[$iGroups]->PRODUCT_NAME; ?>
    </td>
    <td>
    <input type="text" name="productSelect[<?php echo $listeDoc[$iGroups]->PRODUCT_ID ?>]['quantity']" id="productQty_<?php echo $listeDoc[$iGroups]->PRODUCT_ID ?>" size="45" maxlength="100" class="form-control1" value="" />
    </td>
    </tr>
    <?php
     $iGroups++;
    }
    ?>

在您的控制器中,您会得到这样的值..

    $producySelected = $_POST['productSelect']; 
  if(!empty($producySelected){

    foreach($producySelected as $key=>$selected){
    {
        $PRODUCT_ID = $selected['product_id'];
        $QTY = $selected['quantity'];

    }
  }

【讨论】:

  • 感谢拉克什。在控制器中,我无法获取 product_id 和数量。它给了我一个未定义的索引:product_id。你能帮帮忙最后一部分吗……我真的很忙……非常感谢
  • 能否请您在此处发布您发布的数据...输出 print_r($_POST);您要提交什么表单数据。
  • @KevinDave 我已经测试过了。它工作正常。您的表单数据中可能存在一些问题。请把你的数据发给我$_POST
  • 这是我的 $_POST = array(2) { [1101]=> array(2) { ["'product_id'"]=> string(0) "" ["'quantity'" ]=> string(1) "5" } [901]=> array(2) { ["'product_id'"]=> string(0) "" ["'quantity'"]=> string(1) " 6" } }
  • 这就是我正在尝试的:$producySelected = $_POST['productSelect']; if(!empty($producySelected)) { foreach($producySelected as $key=>$selected) { //$PRODUCT_ID = $selected['product_id']; //$QTY = $selected['数量']; $PRODUCT_ID = $key; echo ('PRODUCT_ID :'.$PRODUCT_ID);回声(“
    ”); foreach($selected as $key=>$select) { print_r($select);回声(“
    ”); //echo ('数量: '.$select); //回显$数量; } } }
猜你喜欢
  • 2021-06-07
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-02
  • 2015-06-17
  • 1970-01-01
  • 2013-09-16
相关资源
最近更新 更多