Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript php会话数组未使用ajax添加新元素_Javascript_Php_Ajax_Session - Fatal编程技术网

Javascript php会话数组未使用ajax添加新元素

Javascript php会话数组未使用ajax添加新元素,javascript,php,ajax,session,Javascript,Php,Ajax,Session,我正在创建一个机票预订应用程序。我正在尝试使用PHP和Ajax创建一个基本购物车,当我单击AddtoCart按钮时,它会使用Ajax将座位号发送到“seatchecker.PHP”文件,该文件会检查座位是否可用,然后如果可用,它会使用Ajax将座位号发送到“seatader.PHP”文件,该文件会将座位号添加到会话数组中。但每次单击“添加到购物车”时,它只显示新值,而不是显示整个购物车。可能每次都会覆盖会话变量?任何帮助都将不胜感激。谢谢 <?php session_start(); //

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

<?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);
?>

问题似乎源于这样一个事实:每次调用脚本时,您都在初始化一个空数组的
seat\u 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);

@Khuzema如果它解决了你的问题,你可以检查它作为答案。