2015-07-30 2 views
0

если у вас есть данные о сеансе, более 1 не работает, но у него есть только одна его работа. что случилось с этимphp shopping cart идентификатор сеанса удалите

Я поместил все свои коды в сеанс. проверить, что произойдет в этом случае ...

вот мой PHP код этой ссылки ?action=remove&id=<value>

function checkCartForItem($addItem, $cartItems) { 
    if (is_array($cartItems)){ 
      foreach($cartItems as $key => $item) { 
       if($item['id'] === $addItem) 
        return $key; 
      } 
    } 
    return false; 
} 

if (!empty($_GET['qty'])) { 

    $qty = $_GET['qty']; 
} 

//Store it in a Array 
$ITEM = array(
//Item name  
'id' => $_POST['id']  

); 

$addItem = $_GET['id']; 


//check 
if(!empty($_GET["action"])) { 
switch($_GET["action"]) { 
    case "add": 
     if(!empty($_GET["qty"])) { 

      $productByCode = $db_handle->runQuery("SELECT * FROM product WHERE id='" . $_GET["id"] . "'"); 
      $itemArray = array($productByCode[0]["id"]=>array('name'=>$productByCode[0]["product_name"], 'id'=>$productByCode[0]["id"], 'quantity'=>$qty, 'price'=>$productByCode[0]["new_price"])); 

      $itemExists = checkCartForItem($addItem, $_SESSION['cart_item']); 

      if ($itemExists !== false){ 
       $_SESSION['cart_item'][$itemExists]['quantity'] = $qty ; 
      } else { 

       if(!empty($_SESSION["cart_item"])) { 

        if(in_array($productByCode[0]["id"],$_SESSION["cart_item"])) { 
         foreach($_SESSION["cart_item"] as $k => $v) { 
           if($productByCode[0]["id"] == $k) 
            $_SESSION["cart_item"][$k]["quantity"] = $qty; 
         } 
        } else { 
         $_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray); 
        } 
       } else { 
        $_SESSION["cart_item"] = $itemArray; 
       } 
      } 
     } 
    break; 
    case "remove": 
     if(!empty($_SESSION["cart_item"])) { 
      foreach($_SESSION["cart_item"] as $k => $v) { 
        if($_GET["id"] == $k) 
         unset($_SESSION["cart_item"][$k]);  
        if(empty($_SESSION["cart_item"])) 
         unset($_SESSION["cart_item"]); 
      } 
     } 

    break; 
    case "empty": 
     unset($_SESSION["cart_item"]); 
    break; 
} 
} 

массив (print_r($_SESSION["cart_item"]);)

Array ([0] => Array ([name] => Sadfsafsadf [id] => 11 [quantity] => 1 [price] => safsafsa) [1] => Array ([name] => TP-LINK 4 Port Wireless Dual Band N600 [id] => 13 [quantity] => 1 [price] => 15980)) 
+0

Вы подтвердили, что все предметы добавлены в корзину успешно? $ _SESSION ['cart_item'] - это массив и содержит элементы, которые вы хотите? Вы говорите, что это не работает - вы имеете в виду, что элемент не удален или все удалено? Пожалуйста, будьте как можно более конкретными. – Eddy

+0

@ user3501407 Вы можете поделиться своим массивом $ _SESSION ["cart_item"]. –

+0

@ user3501407, пожалуйста, напечатайте свой массив как 'print_r ($ _ SESSION [" cart_item "]);' и скопируйте + вставьте результаты здесь, я хочу увидеть структуру вашего массива –

ответ

1

Вы сделали ошибку на этой линии. если ($ _ GET [ "ID"] == [$ к])

case "remove": 
     if(!empty($_SESSION["cart_item"])) { 
      foreach($_SESSION["cart_item"] as $k => $v) { 
        if($_GET["id"] == $_SESSION["cart_item"][$k]['id']) 
         unset($_SESSION["cart_item"][$k]);  
        if(empty($_SESSION["cart_item"])) 
         unset($_SESSION["cart_item"]); 
      } 
     } 

    break; 
+0

plzz дайте мне полный код для этого. Я не знаю об этом – user3501407

+0

plzz помогите мне в этом .. я не могу исправить его – user3501407

+1

@ user3501407 вы можете разместить свой массив $ _SESSION ["cart_item"] и значение $ _GET [id ] –

0

Вместо

if($_GET["id"] == $k) 

сделать

if($_GET["id"] == $_SESSION["cart_item"][$k]['id']) 
0
case "remove": 
    if(!empty($_SESSION["cart_item"])) { 
     foreach($_SESSION["cart_item"] as $k => $v) { 
       if($_GET["id"] == $_SESSION["cart_item"][$k]['id'])// 
        unset($_SESSION["cart_item"][$k]);  
       if(empty($_SESSION["cart_item"])) 
        unset($_SESSION["cart_item"]); 
     } 
    } 

это работает !!

Смежные вопросы