Как мне решить эту проблему, как представлено на картинке ниже, мой код успешно создает таблицу и правильно передает echo первого товара, но если в корзину добавляется любой другой товар, он отображается под таблицей, за пределами границы, а не в ней.
Желаемый результат: Чтобы 'Sara Lee Muffin', и количество, и цена (пример) были внутри таблицы в отдельной строке и с кнопкой удаления.
Мой код приведен ниже изображения:
<body>
<br>
<h3>Current shopping cart:</h3>
<table style="border: 1px solid black;">
<?php
// Если корзина не пуста, то создаю ее
if(!empty($_SESSION['shopping_cart'])) { ?>
<tr><th>Имя</th><th>Количество</th><th>Цента</th><th></th></tr>
<?php
if(!empty($_SESSION['shopping_cart'])) {
foreach($_SESSION['shopping_cart'] as $keys => $values) { ?>
<tr>
<td style="text-align:center"><?php echo $values['item_name'];?></td>
<td style="text-align:center"><?php echo $values['item_quantity'];?></td>
<td style="text-align:center">$<?php
echo $values['item_price']*$values['item_quantity'];?>
</td>
<td><form action="" method="get">
<input type="submit" class="btn btn-danger" name="remove" value="Remove">
<input type="hidden" name="hidden_id"
value="<?php echo $values['item_id']; ?>">
</form></td>
</tr></table><br>
<?php } } ?>
<form action="" method="get">
<input type="submit" class="btn btn-primary"
name="payment" value="Confirm">
</form>
<?php } else { echo "Ничего не добавлено.";?>
<br>
<?php } ?>
</body>
Ответ 1
У вас есть завершающий </table> внутри цикла foreach, поэтому каждый элемент массива печатает тег </table>.
Вам следует добавить еще одну проверку корзины после цикла, и если она выполняется, выводить завершающий тег </table>.

Web