我将用户输入(在这种情况下,只是数量和产品代码)传递给php脚本,以通过ajax存储到会话数组中。我希望,每次用户单击“提交”并进行ajax调用时,数量和产品代码都会添加到会话数组中。但是现在发生的是,每次它更新会话中的现有数据时。因此,仅存在一对数据。
这是我的ajax脚本:
<script> <!--display form submission result--> var param; var param2; var i; function sendToCart(param, param2){ $("document").ready(function(){ $("#popup-order").submit(function(){ var data = { "action": "test" }; data = $(this).serialize() + "&" + $.param(data); $.ajax({ type: "POST", dataType: "json", url: "addToCart.php?id="+param, //Relative or absolute path to response.php file data: data, success: function(data) { console.log(data); } }); return false; }); }); } </script>
我的PHP sendToCart.php
<?php session_start(); $return = $_POST; $return['json']= json_encode($return); $data = json_decode($return['json'], true); $_SESSION['cart']=array(); array_push($_SESSION['cart'], array("quantity"=>$data['qty'],"id"=>$data['id'])); echo json_encode($cart); ?>
每次进行ajax调用时,您都会覆盖会话变量。
$_SESSION['cart']=array();
您需要读取现有的会话数据并将其添加到该数据。