Как обновить переменную $ _SESSION, используя поле ввода количества обновления - PullRequest
0 голосов
/ 24 ноября 2011

Я использовал этот пример для создания страницы добавления в корзину с использованием PHP. Коды php 2 страниц здесь:

http://jameshamilton.eu/sites/default/files/products.php_.txt

http://jameshamilton.eu/sites/default/files/cart.php_.txt

На странице корзины я создал поле ввода количества и ссылку для обновления, которая пытается обновить количества для каждой позиции. Автор примера сказал , что нужно сделать, чтобы обновить количества. Однако у меня возникли проблемы с этим.

Я не уверен, как обновить количества, хранящиеся в $ _SESSION ['cart'], на то, что пользователь вводит в поле количества на странице корзины. Я предполагаю, что некоторый код должен существовать в операторе switch для case: update, чтобы ссылка обновления вызывала действие: update, чтобы обновить количества на единицу.

Может ли кто-нибудь показать мне, какой код использовать, чтобы обновить $ _SESSION ['cart'], используя этот пример? Я пытался связаться с автором примера, но он так и не ответил.

ОБНОВЛЕНИЕ: Вот соответствующая часть кодов, которые я использую:

https://soc.uwl.ac.uk/~21099475/code.txt

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

, поскольку может быть обновлено более одного продукта, для этого нужна форма.Это пример, чтобы понять, что вы должны делать.

<form action="<?php echo $_SERVER[PHP_SELF]?>?action=update" method="post">
    <input type="text" name="quantity[2]" value="3" />
    <input type="text" name="quantity[3]" value="2" />
    <input type="text" name="quantity[4]" value="1" />
    <button type="submit" name="submit">Update</button>
</form>

После отправки формы вам необходимо проверить количество отправленных и увеличить или уменьшить их.

if(!empty($_POST['quantity'])) {
        foreach($_POST['quantity'] as $productID => $quantity) {
            if(!empty($_SESSION['cart'][$productID])) {
                $quantity = intval($quantity);
                if($quantity > 0) {
                    $_SESSION['cart'][$productID] = $quantity;
                }
                else {
                    unset($_SESSION['cart'][$productID]);
                }
            }
        }
    }

Я думаю, этот пример поможет вам.

0 голосов
/ 24 ноября 2011

вы не можете обновить сессию, но можете использовать следующую логику.

сначала вы отключили сеанс

unset($_SESSION['cart']['product_id']); //don't unset session,unset only quantity session 

теперь создайте сеанс

$_SESSION['cart']['product_id'] = 4; //updated value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...