Я делал корзины покупок, прежде чем каждый элемент не имел каких-либо специальных атрибутов, таких как цвет или размер, но мой текущий проект имеет атрибут цвета. В прошлом я использовал переменные сеанса, названные в честь идентификатора продукта, для хранения количества. Как так:Справочная информация по корзине PHP - дополнительные опции
На включаемой страницу вверх в верхней части моей страницы продуктов:
/* initialize all quantities to 0 */
for ($i=0; $i <=$maxID; $i++) {
if (!isset($_SESSION['product'.$i]))
$_SESSION['product'.$i] = 0;
}
/* keeps a running total of the number of products to be purchased */
for ($j=0; $j<=$maxID; $j++) {
$cartCount += $_SESSION['product'.$j];
}
и на странице продуктов у меня есть:
if (isset($_POST['addtocart'])) {
$_SESSION['product'.$id] += 1;
header ("Location: products.php?id=$id");
}
Затем на странице проверки я использовал для цикла, чтобы пройти через корзину по $ id.
Однако теперь я застреваю, потому что мне не только нужно экономить количество каждого продукта, но и цвет, при этом элемент # является тем же. Может ли кто-нибудь помочь мне преобразовать вышеприведенный код во что-то, что будет делать то же самое, с добавленной особенностью также отслеживания заказа цвета? Например, я могу купить один зеленый элемент №1 и один синий элемент №1. Они должны быть показаны отдельно, так как цвет отличается, хотя номер позиции тот же. Кроме того, нет окна количества, только кнопка «Добавить в корзину», поэтому, если вы хотите приобрести два одинаковых элемента, вам нужно дважды нажать «Добавить в корзину». Таким образом,
$_SESSION['product'.$id] += 1;
вместо
$_SESSION['product'.$id] = $qty;
Видимо, чтобы следить как цвет и количество, мне нужно использовать многомерный массив для хранения и другое, но я не могу понять, как инициализировать его или установить значения. Любая помощь будет принята с благодарностью. Извините, если я не очень хорошо объяснил свою проблему, я собираюсь около 17 часов без сна, пытаясь понять это!
Тогда это не было бы динамичным. Каждый элемент имеет разные цветовые решения. Я не обязательно уверен, что элемент $ i приходит в красный цвет, поэтому я не могу записать код «_red» там. –
@JohnO вам не нужно жестко кодировать его, используйте значение из базы данных аналогично тому, как вы используете $ id. – Ryan
$ id - число, поэтому я могу взаимодействовать через него с циклом for. Как выполнить итерацию через $ _SESSION ['product'. $ I. $ Color]? Если я использую свой обычный цикл, он не будет различать красный идентификатор 1 и зеленый идентификатор 1. –