#php #session
#php #сеанс
Вопрос:
Я пытаюсь отобразить в таблице значения, которые хранятся в сеансе, проблема в следующем: как отобразить всю информацию, пока приложение не показывает один из моих трех сеансов, что насчет остальных? Есть идеи?
<?php
$_SESSION['id'][] = $_GET['id'];
$_SESSION['name'][] = $_GET['name'];
$_SESSION['price'][] = $_GET['price'];
?>
<h1>Shopping Cart</h1><br>
<table border=1>
<th>ID</th>
<th>Name</th>
<th>Price</th>
<tbody id="tb">
<?php foreach($_SESSION['name'] as $key=> $n){ ?>
<tr>
<td><?php ?></td>
<td><?php echo $n; ?></td>
<td><?php ?></td>
</tr>
<?php } ?>
</tbody>
</table>
Комментарии:
1. Что вы имеете в виду под «моими тремя сеансами»??
2. $_SESSION[‘id’][] = $_GET[‘id’]; $_SESSION[‘name’][] = $_GET[‘name’];$_SESSION[‘price’][] = $_GET[‘price’];
3. Я хочу заполнить другие td этой информацией….
Ответ №1:
Возможно, вам нужно изменить на:
<?php
$product = array(
'id' => $_GET['id'],
'name' => $_GET['name'],
'price' => $_GET['price'],
);
$_SESSION['product'] = $product;
?>
<h1>Shopping Cart</h1><br>
<table border=1>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Price</th>
</tr>
</thead>
<tbody id="tb">
<?php if isset($_SESSION['product']): ?>
<tr>
<td><?php echo $_SESSION['product']['id']; ?></td>
<td><?php echo $_SESSION['product']['name']; ?></td>
<td><?php echo $_SESSION['product']['price']; ?></td>
</tr>
<?php endif; ?>
</tbody>
</table>
Если вам нужно поддерживать несколько продуктов в вашем приложении:
<?php
// you can check that the cart exists, if not, create it.
if (!isset($_SESSION['cart']){
$_SESSION['cart'] = array(
'products' => array(),
);
}
$product = array(
'id' => $_GET['id'],
'name' => $_GET['name'],
'price' => $_GET['price'],
);
//add 1 product to your cart
$_SESSION['cart']['products'][] = $product;
?>
<h1>Shopping Cart</h1><br>
<table border=1>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Price</th>
</tr>
</thead>
<tbody id="tb">
<?php if isset($_SESSION['cart']): ?>
//$product is only 1 product in the cart
<?php foreach ($_SESSION['cart']['products'] as $product): ?>
<tr>
<td><?php echo $product['id']; ?></td>
<td><?php echo $product['name']; ?></td>
<td><?php echo $product['price']; ?></td>
</tr>
<?php else: ?>
<tr>
<td>No products</td>
</tr>
<?php endif; ?>
</tr>
</tbody>
</table>
Ответ №2:
когда пользователь нажимает на кнопку выхода, вы освобождаете значения сеанса и выводите пользователю предупреждение для очистки товаров в корзине
session_destroy();
OR
// remove all session variables
session_unset();