如何在购物车中的数量变化时使用 PHP 中的 jquery 更新价格


How to update price when quantity changes in a shopping cart using jquery in PHP

嗨,我正在使用jquery开发购物车。到目前为止,我已经列出了产品及其详细信息。这是我的代码

foreach( $_SESSION['r'] as $key=>$ar):
$cnt++;
 ?>   <tr>
        <td align="center"><?php echo $ar['Name']?></td>
        <td align="center"><?php echo $ar['Price']?></td>
       <td align="center">
       <select class="myclass" name="qty" id='qty<?php echo $cnt;?>'>
       <?php for ($i=1; $i<=100; $i++) {
               $y="";
               if( $i==$_SESSION['r'][$key]['Quantity']){
                $y="selected";
                }
                echo "<option ";
                echo "value='"$i'" ".$y.">", $i, "</option>'n";

            } ?>
       </select>
       </td>
        <?php $x=$x+$ar['Quantity']; ?>
         <td name="price" id="price"><span class="priceDisplay<?php echo $cnt;?>"><?php echo $ar['Total']; ?></span></td>
    <!--   <td id="tot" align="center"><?php// echo $ar['Total'] ?></td> -->
        <input type='hidden' name='id' id="pid" value='<?php echo $ar['Id']; ?>'>
        <input type='hidden' name='price' id="price" value='<?php echo $ar['Price'] ?>' class="input">  
       <td><input type='checkbox' name='remove' value='Remove' onCheck="$(this).closest('tr').remove();">

在这里,我在每行中的下拉列表的ID是不同的。它是在循环继续时自动生成的。我所需要的只是,当用户更改产品的数量时,必须更改相应的价格。问题是,当用户更改数量时,必须调用jquery。它应传递选择 ID。但是我选择的 ID 对于每个产品都是不同的。那么我是如何实现的呢?请帮助我。

您是否尝试过在选择上实现一个计算总价的函数onChange(),您可以将一个类添加到价格和数量的容器中,只是为了区分,然后遍历它们。

试试这个

<td align="center" id="price"><?php echo $ar['Price']?></td>
       <td align="center">
<select class="myclass" name="qty" id='qty<?php echo $cnt;?>' onchange="get_price(this)">
       <?php for ($i=1; $i<=100; $i++) {
               $y="";
               if( $i==$_SESSION['r'][$key]['Quantity']){
                $y="selected";
                }
                echo "<option ";
                echo "value='"$i'" ".$y.">", $i, "</option>'n";

            } ?>
       </select>

<script>
function get_price(val)
{
    var qty = $(val).val();
    var price = $("#price").html();
    var price =  qty * price;
    $("#price").html(price);
    return false;

}
</script>