使用php和html将商品添加到购物车

使用php和html将商品添加到购物车,php,html,session,get,Php,Html,Session,Get,我正在尝试使用php和html实现一个购物车。我遇到的问题是使用会话存储要存储的产品的id。以下是我目前掌握的代码: <?php session_start(); ?> //There are three HTML Forms that take and display input, and output. <?php $_SESSION['cart'] = array(); if(isset($_GET['search'])){ echo "<table bor

我正在尝试使用php和html实现一个购物车。我遇到的问题是使用会话存储要存储的产品的id。以下是我目前掌握的代码:

<?php
session_start();
?>
//There are three HTML Forms that take and display input, and output.

<?php
$_SESSION['cart'] = array();

if(isset($_GET['search'])){
  echo "<table border=1>";
  echo "<th>Product Image</th>";
  echo "<th>Product Name</th>";
  echo "<th>Price</th>";

  foreach($xml->categories->category->items->product as $product){
    $imageURL = $product->images->image[0]->sourceURL;
    $id = $product['id'];
    echo "<tr>";
    echo "<td><a href= 'buy.php?buy=".$id."'><img src=".$imageURL."></img></a></td>";
    echo "<td>".$product->name."</td>";
    echo "<td>".'$'.$product->minPrice."</td>";
  }
}

if(isset($_GET['buy'])){
  $product_id = $_GET['buy'];
  if(isset($_SESSION['cart'])){
    array_push($_SESSION['cart'],$product_id);
  }
}

print_r ($_SESSION);
?>

//有三种HTML表单,它们接受并显示输入和输出。

第一个if语句所做的是获取搜索词,并获取最接近的结果。然后显示图像、名称和价格。当你点击图片时,会有一个href,它应该被添加到购物车中。这就是第二个if语句发挥作用的地方。如果已单击图像,我希望获取id并将其存储在会话中。当点击时,它存储产品的id,但当我返回添加另一个项目时,以前的id将替换为新id。有人能向我解释我哪里出错了吗?非常感谢您的帮助。

首先,您必须为您的$\u会话['cart']分配一个数组。否则,它将只存储一个值

$ids = array();

$_SESSION['cart'] = $ids;

然后它就会工作。

首先,您必须为您的$\u会话['cart']分配一个数组。否则,它将只存储一个值

$ids = array();

$_SESSION['cart'] = $ids;

然后它就会工作。

您必须使用数组来存储多个值:

$shop_array= array(); // this is create the array with the name shop_array
// now create the session and assign the shop_array to creating session
$_session['mycart'] = $shop_array;
您可以使用
print\r()
函数检查存储的值:

print_r($_session['mycart']);

您将获得存储ID的结果集。

您必须使用数组存储多个值:

$shop_array= array(); // this is create the array with the name shop_array
// now create the session and assign the shop_array to creating session
$_session['mycart'] = $shop_array;
您可以使用
print\r()
函数检查存储的值:

print_r($_session['mycart']);

您将获得存储ID的结果集。

您能试试这个吗

          if(isset($_GET['buy'])){
                $product_id = $_GET['buy'];       
                  if(!in_array($product_id, $_SESSION['cart'])){
                      $_SESSION['cart'][]=$product_id;
                  }             
             }

你能试试这个吗

          if(isset($_GET['buy'])){
                $product_id = $_GET['buy'];       
                  if(!in_array($product_id, $_SESSION['cart'])){
                      $_SESSION['cart'][]=$product_id;
                  }             
             }

您的问题在这一行: $\u会话['cart']=array()

检查如下:

if(empty($_SESSION['cart']))
  $_SESSION['cart'] = array();

这应该可以解决问题

您的问题在这一行: $\u会话['cart']=array()

检查如下:

if(empty($_SESSION['cart']))
  $_SESSION['cart'] = array();

这应该可以解决这个问题

你必须选择存储购物车会话和cookies我个人更喜欢会话尝试使用此代码在会话中存储购物车

if(isset($_POST['item_src']))
{
  $_SESSION['name'][]=$_POST['item_name'];
  $_SESSION['price'][]=$_POST['item_price'];
  $_SESSION['src'][]=$_POST['item_src'];
  echo count($_SESSION['name']);
  exit();
}

在此完成创建添加到购物车系统的教程

您必须选择存储购物车会话和Cookie的选项我个人更喜欢会话尝试此代码在会话中存储购物车

if(isset($_POST['item_src']))
{
  $_SESSION['name'][]=$_POST['item_name'];
  $_SESSION['price'][]=$_POST['item_price'];
  $_SESSION['src'][]=$_POST['item_src'];
  echo count($_SESSION['name']);
  exit();
}

在此完成创建“添加到购物车”系统的教程

感谢您的回复,但是,它仍然用新值替换旧值,而不是累加它们。感谢您的回复,但是,它仍然用新值替换旧值,而不是累加它们。我尝试过这样做,但是第一个值仍然被后面的值替换。我尝试过这样做,但是第一个值仍然被后面的值替换。谢谢你的建议,但我已经知道了。这就是我知道数组元素正在被替换的原因。这是别人提出的相同建议,似乎对我不起作用。谢谢你的建议,但我已经知道了。这就是我知道数组元素正在被替换的原因。这与其他人的建议相同,似乎对我不起作用。在分配到空数组之前,请检查会话购物车。检查下面的代码。这是适合您的解决方案吗?在分配到空阵列之前,请检查会话购物车。检查下面的代码。这个解决方案对你有效吗?