javascript - onClick 从 session 中删除项目

标签 javascript php jquery html

我正在尝试从购物车中删除商品。当商品“保存到购物车”时,它们会保存到 session 中。

但现在我希望能够从这个“购物车”中删除某些商品。因为我从这里(stackoverflow)获得了脚本,所以我对代码不太熟悉。我在谷歌上看到了一些答案,这里描述了使用 unset 从 session 中删除条目。但我不知道从哪里开始。如果需要更多信息,请告诉我。感谢您查看我的问题...

这是 HTML(没什么特别的):

<div class="txtHint"></div>

这是我的脚本:

$('.add-product').click(function() {
        var productName = $(this).data('product');
            $.post('example.com/reload.php', {productName: productName}, function(data) {
            $('.txtHint').html(data);
        })
    });

这是我的 reload.php 文件:

<?php

session_start();

if (!array_key_exists('products', $_SESSION) || !is_array($_SESSION['products'])) {
    $_SESSION['products'] = [];
}

$productName = array_key_exists('productName', $_POST) ? (string) $_POST['productName'] : '';

if ($productName) {
    $_SESSION['products'][] = $productName;
}
?>

<h4>Saved Items</h4>
  <?php foreach ($_SESSION['products'] as $product): ?>
    <div class="echo-product"><i style="color:#F60;padding-right:20px;" class="fa fa-anchor" aria-hidden="true"></i><?php echo htmlspecialchars($product); ?></div>
    <?php endforeach;?>

更新的代码:按照 Bert Maurau(我希望)的建议。

<?php

session_start();

if (!array_key_exists('products', $_SESSION) || !is_array($_SESSION['products'])) {
    $_SESSION['products'] = [];
}

$productName = array_key_exists('productName', $_POST) ? (string) $_POST['productName'] : '';

if(isset($_GET['delparam'])){
   unset($_SESSION['products'][$productName]);
}
if(isset($_GET['addparam'])){
    $_SESSION['products'][] = $productName;
}
?>

如果我使用它,它不会添加任何新项目...

最佳答案

你应该能够做到:

unset($_SESSION['products'][$productName]);

这将取消设置 array_key 及其与您的产品名称匹配的值。

编辑:使用未设置的代码

HTML:

$('.delete-product').click(function() {
  var productName = $(this).data('product');
  $.post('example.com/reload.php?delparam', {productName: productName}, function(data) {
  })
});

Reload.php(在$productName之后)

if(isset($_GET['delparam'])){
   unset($_SESSION['products'][$productName]);
}
if(isset($_GET['addparam'])){
   //code for adding product
}

关于javascript - onClick 从 session 中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38567863/

相关文章:

javascript - 多个 Onclick 事件 - 2 个事件中的 1 个正在运行

php - MysQL 通过查询获取时间

javascript - jQuery Mobile 事件 - 独立?

javascript - 使用点击类查找 div 的 ID

javascript - YUI App transition "flickers"on showView

javascript - 如何将一个/一个完全定义但自治的 GUI 元素追溯附加到另一个(DOM 附加)元素

javascript - Sails.js 上传图片不起作用

javascript - 为什么我的 iFrame 重定向到其他页面

php - 如何删除前导和尾随非字母数字字符

javascript - 在 Internet Explorer 中获取 png 上的图像错误框?