【问题标题】:php session array not adding new elements using ajaxphp会话数组不使用ajax添加新元素
【发布时间】:2017-01-23 04:42:23
【问题描述】:

我正在创建一个订票应用程序。我正在尝试使用 PHP 和 Ajax 创建一个基本的购物车,当我单击添加到购物车按钮时,它使用 Ajax 将座位号发送到“seatchecker.php”文件,该文件检查座位是否可用,然后如果它是可用,它使用 Ajax 将该座位号发送到“seatadder.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);
?>

【问题讨论】:

    标签: javascript php ajax session


    【解决方案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);
    

    【讨论】:

    • @Khuzema 如果它解决了你的问题,你可以检查它作为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2021-12-11
    相关资源
    最近更新 更多