2016-09-15 60 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