一尘不染

如何通过ajax更新会话数组?

ajax

我将用户输入(在这种情况下,只是数量和产品代码)传递给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);
      ?>

阅读 231

收藏
2020-07-26

共1个答案

一尘不染

每次进行ajax调用时,您都会覆盖会话变量。

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

您需要读取现有的会话数据并将其添加到该数据。

2020-07-26