Сеансы в корзине покупок

#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();