Как увеличить количество товаров в корзине - PullRequest
0 голосов
/ 04 июля 2019

Я хочу увеличить количество товара, когда нажимаю на кнопку «Добавить в корзину» несколько раз, но я не увеличиваю его количество, оставаясь прежним, кто-то помог мне решить эту проблему. Что я кодировать в пустом разделе остальное

if(isset($_POST["submit1"]))
{
    if(isset($_SESSION["shopping_cart"]))
    {
        $item_array_id = array_column($_SESSION["shopping_cart"], "item_id");
        if(!in_array($_GET["product_id"], $item_array_id))
        {
            $count = count($_SESSION["shopping_cart"]);
            $item_array = array(
                'item_id'           =>  $_GET["product_id"],
                'item_name'         =>  $_POST["hidden_name"],
                'item_price'        =>  $_POST["hidden_price"],
                'item_quantity'     =>  $_POST["quantity"],
               'item_image'     =>  $_POST["hidden_image"],

            );
            $_SESSION["shopping_cart"][$count] = $item_array;
        }
        else
        {




        }
    }
    else
    {
        $item_array = array(
            'item_id'           =>  $_GET["product_id"],
            'item_name'         =>  $_POST["hidden_name"],
            'item_price'        =>  $_POST["hidden_price"],
            'item_quantity'     =>  $_POST["quantity"],
            'item_image'        =>  $_POST["hidden_image"],

        );
        $_SESSION["shopping_cart"][0] = $item_array;
    }     
}

Ответы [ 2 ]

1 голос
/ 04 июля 2019

Вы можете получить ключ предмета с помощью array_search, например:

// look for 'item_id' with the value of $_GET["product_id"] inside of the cart
$itemIds = array_column( $_SESSION["shopping_cart"], "item_id" );
$key = array_search( $_GET["product_id"], $itemIds );

и затем вы можете легко обновить количество этого элемента, выполнив что-то вроде этого:

...
if (isset($_SESSION["shopping_cart"]))
{
    // look for 'item_id' with the value of $_GET["product_id"] inside of the cart
    $itemIds = array_column( $_SESSION["shopping_cart"], "item_id" );
    $key = array_search( $_GET["product_id"], $itemIds );

    if ( $key === false )
    {
        $item_array = array(
            'item_id'           =>  $_GET["product_id"],
            'item_name'         =>  $_POST["hidden_name"],
            'item_price'        =>  $_POST["hidden_price"],
            'item_quantity'     =>  $_POST["quantity"],
            'item_image'        =>  $_POST["hidden_image"],

        );
        $_SESSION["shopping_cart"][] = $item_array;
    }
    else
    {
        // if quantity is invalid do something, else
        $_SESSION["shopping_cart"][$key]["item_quantity"] += $_POST["quantity"];
    }
}
...
0 голосов
/ 04 июля 2019

Ваша логика программы правильная, просто обновите ее до:

$count++;
$_SESSION["shopping_cart"][$count] = $item_array;
...