2013-02-14 66 views
0

我在PHP中有以下功能,每次用戶點擊添加到購物車時都會向購物車添加項目。在PHP刷新網站時重新添加項目到購物車的會話

問題是,如果有人在將商品添加到購物車後手動重新加載頁面,則會添加新商品。

任何提示,以避免這種情況?

function addtocart($pid,$q) 
    { 
     if($pid<1 or $q<1) return; 
     if(is_array($_SESSION['cart'])) 
     { 

      $max=count($_SESSION['cart']); 
      $_SESSION['cart'][$max]['itemId']=$pid; 
      $_SESSION['cart'][$max]['qty']=$q; 
      $max=count($_SESSION['cart']); 
     } 
     else 
     { 
      $_SESSION['cart']=array(); 
      $_SESSION['cart'][0]['itemId']=$pid; 
      $_SESSION['cart'][0]['qty']=$q; 
      $max=count($_SESSION['cart']); 

     } 
    } 

這是我如何調用該函數:

<input type="button" value="<?php echo $lang['ADDTOCART']; ?>" class="addToCart" onclick="addtocart(<?php echo $itemId; ?>)" /> 

的Javascript執行:

<script language="javascript"> 
    function addtocart(pid){ 
     document.cartAdding.itemId.value=pid; 
     document.cartAdding.command.value='add'; 
     document.cartAdding.submit(); 
    } 
</script> 

的頁面重載,並進入這裏

添加到購物車用戶的點擊次數:

if(isset($_REQUEST['command']) && $_REQUEST['command']=='add' && $_REQUEST['itemId']>0) 
{ 
     $pid=$_REQUEST['itemId']; 
     addtocart($pid,1); 
} 

謝謝

+0

他們手動刷新哪些頁面? '添加到購物車'頁面? – ceejayoz 2013-02-14 20:15:47

+2

如何調用addtocart()? – Tchoupi 2013-02-14 20:15:52

+2

[Post/Redirect/Get](https://en.wikipedia.org/wiki/Post/Redirect/Get) – 2013-02-14 20:18:00

回答

2

你可以把一個if語句來檢查元素是否已經被添加。在我的頭頂上,類似於:

if (array_key_exists($pid, $_SESSION['cart']['itemId'])){ // check to see if product has already been added 
// put code statments here 
} 
+0

如果用戶想再次添加相同的項目該怎麼辦?它不會添加? – samyb8 2013-02-14 21:11:27

+0

如果用戶想要添加相同的物品,那麼他想添加另一個數量(或減去數量);因此你會在if語句中管理它。 – 2013-02-15 14:34:55

相關問題