-1

我有一些这样的输入

while($donnees = mysql_fetch_array($reqmodel)){
?>
<form action="#" name="order" method="post">
<div style='float:left;width:100%'>
<input type='text' name='order_item_sku[]' value='<?php echo $donnees['product_sku'] ;?>'>
<input type='text' name='product_quantity[]' value='0' id="qty[]">
<input type='text' name='product_name[]' value='<?php echo $donnees['product_name'] ;?>'>
<input type='text' name='product_id[]' value='<?php echo $donnees['virtuemart_product_id'] ;?>' style='width: 15px;'>
<input type='text' name='product_price[]' value='<?php echo $price = number_format($donnees['product_price']*1.196,0) ;?>' style='width: 25px;' id="prix[]">

然后我不知道我会得到多少输入。我怎样才能为每一行total price乘以乘法?product_quantity * product_price

4

3 回答 3

1

以下代码可能会有所帮助,并且仅通过查看上面的代码就可以获得一些建议。

while ($row = mysql_fetch_array($reqmodel, MYSQL_ASSOC)) {
    $productPrice = number_format($row['product_price']*$row['product_quantity'],0);
    <input type='text' name='product_price' value='<?php echo "$price = {$productPrice}" ;?>' style='width: 25px;' id="prix">
}

建议一:

不推荐使用 mysql_fetch_array 以支持新的mysqli_fetch_array(),因此请考虑升级您的 PHP 数据库查询代码。

建议 2:

我建议使用 PHP 模板引擎,例如Smarty。这将节省您将数据层与表示层分开的时间,并且您不需要编写如此多的内联 echo 语句来保持代码更清晰。

建议 3:

避免在名称语句中使用 [],因为 [] 通常与数组相关联,可能会使任何试图阅读代码的人感到困惑。

建议 4:

避免使用 while 循环,尽可能使用 for 循环。这使您的代码保持快速并防止任何未知错误/泄漏/无限循环。

于 2013-04-02T04:11:40.810 回答
0

你只需要在输入的数组上运行一个 for 循环:

$total_price = 0;
$prices = $_POST['product_price'];
$quantities = $_POST['product_quantity'];
$c = count($prices);
for ($i = 0; $i < $c; $i++) {
    $p = (int) $prices[$i]; $q = (int) $quantities[$i];
    $total_price += $p * $q; 
}
于 2013-04-02T04:16:25.203 回答
0

这是在 jQuery 中

http://jsfiddle.net/b9chris/hSxkW/

给定 HTML 输出,如:

<div>
<input name=qty />
<input name=price />
<span class=price></span>
</div>

<div>
<input name=qty />
<input name=price />
<span class=price></span>
</div>

这将自动计算跨度标签中的价格字段:

$('input[name=qty], input[name=price]').keyup(function() {
    var divParent = $(this).closest('div');
    var qty = $('input[name=qty]', divParent).val()-0;
    var price = $('input[name=price]', divParent).val()-0;
    if (qty >= 0 && price >= 0)
        $('span.price', divParent).text(qty*price);
});
于 2013-04-02T05:42:24.913 回答