如何删除以我创建的方式传递的项目?

时间:2014-03-09 02:15:06

标签: php cart shopping

我正在学习基本的php课程,我需要一些可能基本的帮助。虽然这节课很难过。


所以到目前为止我所做的是创建一种保存项目的方法。即localhost:8888 /?item = album1

它会将album1保存到页面上。


现在,我必须创建另一个页面,删除输入了网址的项目。

这是我需要帮助的地方:

使用我们提交的URL,我们添加一个查询参数remove = true,就像我们传入要保存的项目名称一样。 在控制器中,查找删除键。如果您找到它,请添加代码以从购物车中删除该项目。

到目前为止,这是我的编码。

 <?php

    session_start();

    if (!isset($_SESSION['cart'])) {
        $_SESSION['cart'] = array();
    }

    if (isset($_GET['item'])) {
        echo 'Thank you for your interest in '.$_GET['item'];
        $_SESSION['cart'][] = $_GET['item'];
    }

    echo 'Here are the items currently in your cart:<br><br>';

    foreach ($_SESSION['cart'] as $album) {
        echo $album."<br>";
    }

?> 

2 个答案:

答案 0 :(得分:0)

首先为删除操作添加新的GET var:

要移除的网址:localhost:8888/?remove&item=album1

<?php

session_start();

if (!isset($_SESSION['cart'])) {
    $_SESSION['cart'] = array();
}

if ( isset($_GET['remove']) && isset($_GET['item']) ) {
echo 'You are about to delete item ' . $_GET['item'];

// var_dump($_SESSION);

    // remove the item
    $item = $_GET['item'];
    foreach($_SESSION['cart'] as $cartPosition => $itemName) {
        if($item === $itemName) {
            unset($_SESSION['cart'][$cartPosition]);
        }
    }

}

elseif (isset($_GET['item'])) {
    echo 'Thank you for your interest in '.$_GET['item'];
    $_SESSION['cart'][] = $_GET['item'];
}

echo 'Here are the items currently in your cart:<br><br>';

foreach ($_SESSION['cart'] as $album) {
    echo $album."<br>";
}

?>

答案 1 :(得分:0)

localhost:8888/?item=album1&remove=true

尝试类似的操作
if (isset($_GET['item'])) {
  if(isset($_GET['remove']) && $_GET['remove'] == 'true' ) {
           unset($_SESSION['cart'][$_GET['item']]);
      }
    else {
    echo 'Thank you for your interest in '.$_GET['item'];
    $_SESSION['cart'][] = $_GET['item'];
    }
}

第二行检查是否存在remove,如果是,则检查remove是否为真(如果有人通过则删除false则不应该触发)如果一切正常“取消设置”会话中的变量

希望有所帮助