2017-08-25 74 views
2

現在第3天,我想弄清楚如何在數量變化時獲得總計更新。我已經做到了價格和總數,因爲我改變了數量,但總計我無法做到。 這裏是我的代碼如何從php使用javascript/jquery獲得總計總計

<?php 
           if(isset($_POST['prod_id'])){ 
            $prod_id =$_POST['prod_id']; 
            $prod_qty=$_POST['qty']; 
            $up_cart="UPDATE `cart` SET `qty` = '$prod_qty' WHERE `cart`.`product_id` = '$prod_id'"; 
            $up_cart_run = mysqli_query($conn,$up_cart); 
            if($up_cart_run){ 
             echo "done"; 
            } 

           } 
           ?> 


            <?php  


             $cart_item_query="SELECT * FROM cart"; 
             $cart_item_run = mysqli_query($conn,$cart_item_query); 
             if (mysqli_num_rows($cart_item_run)>0){ 
              $grand_total=0; 
              while($cart_row=mysqli_fetch_array($cart_item_run)){ 
               $pro_id = $cart_row['product_id']; 
               $pro_qty = $cart_row['qty']; 


               $product_query="SELECT * FROM products WHERE product_id = '$pro_id'"; 
               $product_run = mysqli_query($conn, $product_query); 
               $product_row = mysqli_fetch_array($product_run); 
               $pro_name = $product_row['product_name']; 
               $pro_image = $product_row['product_image']; 
               $pro_sell_price = $product_row['sell_price']; 
               $total = $pro_sell_price*$pro_qty; 
               $grand_total =$grand_total+ $total; 


            ?> 

            <div class="row"> 

             <div class="col-md-3 col-xs-3"><img src="img/<?php echo $pro_image; ?>" alt="" width="50px"></div> 
             <div class="col-md-3 col-xs-3"><p><?php echo $pro_name; ?></p><a href=""><p><i class="fa fa-trash" aria-hidden="true"></i> Remove</p></a></div> 
             <div class="col-md-2 col-xs-2"> 
              <select class="change_qty" size="1" style="width:50px;"> 
               <?php 
               for ($i = 1; $i <= 9; $i++) { 
                $selected = $pro_qty == $i? 'selected' : ''; 
                echo "<option class='qty' data-pro='{$pro_id}' value='{$i}' {$selected}>{$i}</option>"; 
               } 
               ?> 
              </select> 
             </div> 

             <div class="col-md-2 col-xs-2"><input data-pro="<?php echo $pro_id; ?>" id="price-<?php echo $pro_id; ?>" type="text" value="<?php echo $pro_sell_price; ?>" disabled class="form-control dis-input price"></div> 
             <div class="col-md-2 col-xs-2"><input id="total-<?php echo $pro_id; ?>" data-pro="<?php echo $pro_id; ?>" type="text" value="<?php echo $total; ?>" disabled class="form-control dis-input total"></div> 

            </div> 

            <hr> 

            <?php 

              } 
             } 

            ?> 




          </div> 
         </div> 
        </div> 
        <div class="col-md-3"> 
         <div class="card"> 
          <div class="card-body"> 
           <div id="cart_total"></div> 

           <h3>TOTAL <span class="pull-right" id="grand_total">RS. <?php echo $grand_total;?></span></h3> <br> 
           <a href="" class="btn btn-secondary btn-block">PLACE ORDER</a><br> 
           <h5>ORDER SUMMARY</h5> 
           <P>Total Price <span class="pull-right">RS.50000</span> </P> 
           <P>Discount <span class="pull-right text-success">- Rs.0</span> </P> 
           <P>Sub Total <span class="pull-right">Rs.60000</span> </P> 
           <P>Estimated GST <span class="pull-right">Rs.0</span> </P> 
           <P>Delivery Charges <span class="pull-right">Rs.0</span> </P><hr> 
           <h5>Total Payable <span class="pull-right">RS. 60000</span> </h5> 


          </div> 
         </div> 

而且這裏是js的

$('body').delegate('.change_qty','change',function(){ 
     var qty = $(this).val(); 
     var prod_id = $('option:selected', this).attr('data-pro'); 
     var price = $('#price-'+prod_id).val(); 
     var total = qty*price; 
     $('#total-'+prod_id).val(total); 


     up_cart(); 
     function up_cart(){ 
      $.ajax({ 
       url:'cart.php', 
       method:'POST', 
       data:{prod_id:prod_id, 
         qty:qty 
        }, 
       success:function(response){ 

       } 
      }); 
     } 
    }); 

現在一切都只是總計做工精細。在頁面刷新總總更新,但我希望它作爲更改數量像價格更新。謝謝。

+1

你永遠不會做任何事情來更新成功函數內? – adeneo

+0

通常,在使用AJAX執行這些操作時,您會發送回應,其中包含您需要相應更新前端的數據。 – apokryfos

+0

@apokryfos先生,你能詳細解釋我的情況嗎? – kohali

回答

1

你必須創建一個PHP文件,例如類似「calc_grand_total.php」的東西,並且在你的ajax調用中使用它來代替「cart.php」。 在您的PHP文件中,您應該使用您發送到文件的參數來計算總計,然後返回文章的總計。 在ajax調用的成功函數中,您可以使用jQuery輸出並刷新cart.php中的總計。