Как удалить конкретную запись сеанса, нажав на ссылку? - PullRequest
0 голосов
/ 28 мая 2019

Я не могу удалить конкретную запись из массива сессии. Я хочу удалить определенную строку в таблице, когда нажимаю на ссылку удаления.

<?php
session_start();

    if(isset($_GET["product"]) && isset($_GET["category"])){

        $nomProduct = trim($_GET["product"]);
        $category = trim($_GET["category"]);
        $_SESSION['product'][] = array(
            "nomProduct" => $nomProduct ,
            "category" =>  $category

        );

      //session_destroy();

       }
?>

    html table
              <table class="table">
                <?php foreach($_SESSION["product"] as $items) { ?>
                <tr>
                    <th width="250px"><?php echo $items['nomProduct']; ?></th>
                    <td><?php echo $items['category']; ?></td>
                    <td style="text-align: right"><a href="">Delete</a><td>
                </tr>
                <?php }?>

            </table>

Ответы [ 2 ]

1 голос
/ 28 мая 2019

`

$key=array_search($_GET['product'],$_SESSION['product']);
if($key!==false)
unset($_SESSION['product'][$key]);
$_SESSION["product"] = array_values($_SESSION["product"]);

`

Может быть, это может помочь!Вам нужно найти ключ, так как это массив.

РЕДАКТИРОВАТЬ:

Сделал пример для вас, здесь, когда вы нажимаете на ссылку, он удаляет имя из массива сеанса.

<?php
    session_start();
    $_SESSION["user"] = ["fname"=>"William","lname"=>"Henry" ];
    if(isset($_GET["delete"]))
    {
        if($_GET["key"])
        {
            $key=$_GET["key"];
            unset($_SESSION['user'][$key]);
        }
    }
?>

HTML на той же странице

<h1>
        <?php 
            if(isset($_SESSION["user"]["fname"]))echo $_SESSION["user"]["fname"]." "; 
            if(isset($_SESSION["user"]["lname"]))echo $_SESSION["user"]["lname"]; 
        ?>
</h1>
    <a href="<?php echo $_SERVER['PHP_SELF']."?delete=user&key=fname" ?>">Delete First Name</a>

Если вы хотите удалить фамилию (lname), измените ключ = lname в href ссылки, надеюсь, этот пример поможет вваш случай

1 голос
/ 28 мая 2019

Измените свой HTML

<table class="table">
<?php foreach($_SESSION["product"] as $key => $items) { ?>
  <tr>
    <th width="250px"><?php echo $items['nomProduct']; ?></th>
    <td><?php echo $items['category']; ?></td>
    <td style="text-align: right"><a href=?key="<?php echo $key; ?>">Delete</a><td>
   </tr>
 <?php }?>
</table>

Перехватить ключ массива и удалить его из массива сеанса.

$key = filter_input(INPUT_GET, 'key');
unset($_SESSION['product'][$key]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...