2016-09-15 64 views
2

我正在创建一个订票应用程序。我试图用PHP和Ajax创建基本购物车,当我点击添加到购物车按钮时,它使用Ajax将座位号发送到“seatchecker.php”文件,该文件检查座位是否可用,然后如果它是可用,它使用Ajax将座位号发送到“seatadder.php”文件,该文件应将座位号添加到Session数组中。但每次点击“添加到购物车”时,它都会显示新值,而不是显示整个购物车。可能是每次都覆盖会话变量?任何帮助,将不胜感激。由于php会话数组不使用ajax添加新元素

<?php 
session_start(); 
// Getting the value sent by checkseats.php using ajax 
$seat_added = $_GET['seatadd']; 
// ARRAY OF SESSION VARIABLE 
$_SESSION['seat_add'] = array(); 
function multiple_seats_adder($getseat){ 
    array_push($_SESSION['seat_add'],$getseat); 
    // TESTING 
    print_r($_SESSION['seat_add']); 
    // TESTING 
    echo sizeof($_SESSION['seat_add']); 
} 
echo multiple_seats_adder($seat_added); 
?> 

回答

1

这个问题似乎是一个事实,即你的每个脚本被调用时初始化seat_add键设置为空数组来干。很可能,那不是你想要的。考虑下面的代码:

<?php 
     session_start(); 
     // Getting the value sent by checkseats.php using ajax 
     $seat_added = $_GET['seatadd']; 

     // ONLY INITIALIZE THIS TO AN EMPTY ARRAY IF IT DOESN'T EXIST AT ALL: 
     if(!isset($_SESSION['seat_add'])){ 
      // ARRAY OF SESSION VARIABLE 
      $_SESSION['seat_add'] = array();     
     } 


     function multiple_seats_adder($getseat){ 
      array_push($_SESSION['seat_add'], $getseat); 
      // TESTING 
      print_r($_SESSION['seat_add']); 
      // TESTING 
      echo sizeof($_SESSION['seat_add']); 
     } 
     multiple_seats_adder($seat_added); 
+0

哎呀正确,谢谢ポイズ您的时间:) – Khuzema

+0

@Khuzema是否能解决你的问题,你可以检查它的答案。 – Poiz