2016-01-29 109 views
0

請幫助。PHP - Mysqli - 錯誤更新購物車

錯誤更新購物車。

as pictured

的問題是,我需要刷新頁面來更新產品附加值。

此功能已將商品的項目添加到購物車。

------------------- 
(3) --> Product | 
------------------- 
Quantity: 3  | 
------------------- 

<?php 
    if(isset($_SESSION["QuantityTotal"])) 
     echo $_SESSION["QuantityTotal"]; 
     else{ 
      echo "0"; 
     } 
?> 

此功能顯示產品的總成本添加到購物車

------------------------------- 
(3) --> Product --> $300.00 | 
------------------------------- 
Total: $300.00    | 
------------------------------- 

<?php 
    if(isset($_SESSION["totalcoste"])) 
    echo $_SESSION["totalcoste"]; 
     else{ 
     echo "Cart empty"; 
    } 
?> 

這些功能將在所有頁面上顯示,以顯示遊客。

------------------------------- 
(3) --> Product --> $300.00 | 
------------------------------- 
Quantity: 3 Total: $300.00 | 
------------------------------- 

這是代碼完成購物車購物。

<?php 
if (isset($_GET['id'])) 
$id = $_GET['id']; 
else 
$id = 1; 
if (isset($_GET['action'])) 
$action = $_GET['action']; 
else 
$action = "empty"; 
switch($action){ 
case "add": 
if(isset($_SESSION['cart'][$id])) 
$_SESSION['cart'][$id]++; 
else 
$_SESSION['cart'][$id]=1; 
break; 
case "remove": 
if(isset($_SESSION['cart'][$id])) 
    { 
     $_SESSION['cart'][$id]--; 
     if($_SESSION['cart'][$id]==0) 
     unset($_SESSION['cart'][$id]); 
    } 
    break; 
    case "removeProd": 
    if(isset($_SESSION['cart'][$id])){ 
     unset($_SESSION['cart'][$id]); 
    } 
    break; 
    case "mostrar": 
    if(isset($_SESSION['cart'][$id])){ 
     continue; 
    } 
    break; 
    case "empty": 
    unset($_SESSION['cart']); 
    break; 
    } 
    if(isset($_SESSION['cart'])){ 
     echo'<table id="table-card">'; 
     $totalcoste = 0; 
     $xTotal = 0; 

     echo'<tr> 
       <td colspan="2" id="td-card">Name product</td> 
       <td id="td-card-precio">Price</td> 
       <td id="td-card-cant">Quantity</td> 
       <td colspan="3" id="td-card-total">Subtotal</td> 
       </tr>'; 

     echo '<tr> 
       <td colspan="7"></td> 
       </tr>'; 

     foreach($_SESSION['cart'] as $id => $x){ 
      $sql = mysqli_query($con,"SELECT * FROM products WHERE id=$id"); 
      $mifila = mysqli_fetch_array ($sql); 
      $id = $mifila['id']; 
      $img = $mifila['img']; 
      $price = $mifila['price']; 
      $product = $mifila['name']; 
      $product = substr($product,0,40); 
      $price = $mifila['price']; 
      $coste = $price * $x; 
      $totalcoste = $totalcoste + $coste; 
      $xTotal = $xTotal + $x; 

      echo '<tr> 
        <td id="td-card-img"><img src="products/'.$img.'" width="70" height="120" /></td> 
        <td id="td-card-name">'. $product .'</td> 
        <td id="td-card-store">$ '.$price.'</td> 
        <td colspan="2" id="td-card-border"> 

        <table id="table-card-edition"> 
        <tr><td>&nbsp;</td> 
         <td>'.$x.'</td> 
         <td>'; 
      echo"<form action='cart.php?id=". $id ."&action=add' method='post'> 
        <input class='img' type='image' src='img/add.png' title='Update'/> 
        </form> 
        "; 
      echo'</td><td>';echo" 
        <form action='cart.php?id=". $id ."&action=remove' method='post'> 
        <input class='img' type='image' src='img/remove.png' title='subtract'/> 
        </form> 
        "; 
      echo'</td><td>'; 
      echo"<form action='cart.php?id=". $id ."&action=removeProd' method='post'> 
        <input class='img' type='image' src='img/delete.gif' title='Delete'/> 
        </form> 
        "; 
      echo'</td></tr></table> </td> 
        <td id="td-card-subtotal">$ '.$coste .'</td> 
        <td>&nbsp;</td> 
        </tr>'; 
       } 
      echo'<tr><td colspan="7"></td></tr> 
       <tr> 
       <td colspan="5" id="td-card-total-pay">Total</td> 
       <td id="td-card-subtotal-pay">$ '.$totalcoste.'</td> 
       <td>&nbsp;</td> 
       </tr> 

       <tr> 
       <td colspan="7"> 
       <a href="shopping.php"><input id="button" type="button" value="Checkout" /></a></td> 
       </tr> 
       </table>'; 
      } 
      else 
       echo 'The basket is empty'; 

      $_SESSION["totalcoste"] = $totalcoste; 
      $_SESSION["quantityTotal"] = $xTotal; 
      echo '<br/><div class="volver">Volver a la <a href="product.php">products</a></div>'; 

?> 

購買產品的按鈕是此功能

<a href='cart.php?id=$id&action=add'><button>Add to cart</button></a> 

它等於該功能

cart.php?id=3&action=add 

as pictured

幫我修改代碼,以使它工作時無需刷新頁面

謝謝。

+3

你已經標記了'ajax'在你的問題,所以看起來你已經知道什麼方向走。 –

+1

我同意帕特里克,你問題描述AJAX。創建一個php腳本,當傳遞的值處理你需要的內容時,只需使用jQuery更新帶有響應的字段。谷歌的例子。 – Deano

+0

@ L.丹'我已經發布了這個問題,你可以檢查問題,看看你明白我的意思......這是鏈接 - 「對不起朋友,但我不知道你住在哪裏,但我咕嚕睡覺。明天我會看看今天沒人幫你。 Okis – Michael

回答

0

中輸入驗證碼來解決這個問題的朋友

if(isset($_SESSION['cart'])) 
    if(isset($_SESSION['cart'])){ 
     echo'<table id="table-card">'; 
     $totalcoste = 0; 
     $xTotal = 0; 

問候

0

顯示帶有按鈕的HTML代碼添加到購物車

例如:

<div id="cart">0</div> 
    <input type="button" value="Add to cart" onclick="f();return false;"/> 

    <script> 
    var i=1; 
    function f() { 
    document.getElementById('cart').innerHTML=i++; 
    } 
    </script> 
+0

問候朋友。我將代碼上傳到服務器網站,這是鏈接[http://democart.site88.net/](http://democart.site88.net/)。以下是完整的代碼:[http://pastebin.com/ChyBDhp1](http://pastebin.com/ChyBDhp1)。問題是在購物車中更新一個新號碼不會更新頂部顯示值的值。我必須更新購物車頁面以顯示添加到購物車的新值。 – Josues

0
 <a href='#' onclick='addtocart('1','add');return false;'><button>Add to cart</button></a> 

JS

 function addtocart(a,b){ 
     var url='cart.php?id='+a+'&action='+b; 

    $.ajax({ 
    url: url, 
    type: frm.attr('method'), 
    data: JSON.stringify(data), 
    dataType: 'html', 
    contentType: 'application/json', 
    success: function(data){ 
    alert(data); 

    /*here you need to receive from server quantity an cost of all products and replace in value in cart*/ 
    $('.cart-count').html('11'); 
    $('.cart-cost').html('1100'); 
    }, 
    error: function(){ 
    alert('error'); 
    } 
}); 

    } 
+0

完美的朋友,但現在問題是在購物車更改產品的數量時。值不顯示在頂部,沒有更新,我必須重新加載頁面才能看到當前值,就像恰好減少並消除Cart的值一樣。 – Josues

+0

我已經寫了,你不需要重新加載頁面來改變購物車的價值,你需要傳遞新的值給js和js來改變頂部購物車的文本,例如'$('。cart-count ')的.html('11'); $(」車成本。 ')HTML(' 1100' );' – Michael