В общем делаю корзину для интернет-магазина. При нажатии на кнопку "добавить в корзину", в массив-сессии записывается (id - товара, и его количество). Далее на странице корзины, перебирается этот массив-сессии, и вызывается функция для получения данных по id товара. У каждого товара есть поле количество (input), где в значении value вставлено значение количества из массива-сессии. Так вот как принять и обновить (если пользователь изменил количество) данные поля input, для каждого элемента? У меня получается принять данные только последнего поля, из-за цикла.
Как можно решить эту проблему?
Вот код страницы корзины:
<? require "functions.php"; ?>
<div class="center">
<div class="content">
<div class="goods-content">
<h3>Корзина</h3>
<? if(isset($_SESSION["cart"])): ?>
<table class="table">
<tr>
<th>№</th>
<th>Товар</th>
<th>Стоимость</th>
<th>Количество</th>
<th>Общая стоимость</th>
<th></th>
</tr>
<? $count = 1; ?>
<form action="?action_bash=update_cart" method="post">
<? if ($_SESSION["flag_result"] == true): ?>
<? $_SESSION["total_price"] = 0; ?>
<? endif; ?>
<? foreach ($_SESSION["cart"] as $id=>$quantity): ?>
<? $goods = output_goods_from_id($id)?> // функция для получения данных о товаре
<tr>
<td>
<strong><?=$count; ?></strong>
<input type="hidden" name="id" value="<?=$goods["id"];?>">
</td>
<td>
<a href="?goods_id=<?=$goods["id"];?>"><img src="images/catalog/<?=$goods["image"]; ?>"></a>
<p><strong><?=$goods["title1"]; ?></strong><br><?=$goods["title2"]; ?></p>
</td>
<td>
<? if ($quantity >= 100): ?> // цена со скидкой
<input type="hidden" name="fin_price" value="<?= $goods["price2"]?>">
<?=$price = $goods["price2"]?>
<? else: ?>
<?=$price = $goods["price1"]?>
<input type="hidden" name="fin_price" value="<?= $goods["price1"]?>">
<? endif;?>
</td>
<td>
<button type="button" class="btn btn-link" value="down" onclick="change('down', <?=$count?>);"><i class="glyphicon glyphicon-minus"></i></button>
<input class="input-count" name="count" type="text" value='<?=$quantity; ?>' id="<?=$count?>">
<button type="button" class="btn btn-link" value="up" onclick="change('up', <?=$count?>);"><i class="glyphicon glyphicon-plus"></i></button>
</td>
<td>
<? $result = $quantity * $price; ?>
<strong><?=$result; ?></strong>
<? if ($_SESSION["flag_result"] == true): ?>
<? $_SESSION["total_price"] += $result; ?>
<? endif; ?>
</td>
<td>
<a href="bash/remove_goods.php?goods_id=<?=$goods["id"]?>"><i class="glyphicon glyphicon-remove"></i></a>
</td>
</tr>
<? $count++;?>
<? endforeach; ?>
<? $_SESSION["flag_result"] = false; ?>
</table>
<? else: ?>
<h3>К корзине ничего нет</h3>
<? endif; ?>
<h3 style="text-align: right; clear:both;">Итого: <?=$_SESSION["total_price"]?> руб.</h3>
<br>
<button type="submit" class="btn btn-success btn-lg" role="button" style="float:right;"
id="loading-example-btn" data-loading-text="Обновление цен...">
Обновить и подтвердить
</button>
</form>
</div>
</div>
</div>
<script>
function change(a, id) {
var val = parseInt(document.getElementById(id).value);
if (a == 'up')
document.getElementById(id).value = val + 1;
else if (a == 'down') {
if (val != 1)
document.getElementById(id).value = val - 1;
}
}
</script>