在更改时更新 PHP 会话变量

Update PHP session variable on change

我在输入上有一个事件侦听器,它执行 ajax 请求以设置 PHP 会话变量。

这适用于第一个事件触发器,但之后,PHP 会话变量保持不变。

这是我的PHP块

session_start();
if(isset($_GET['driver'])){ 
        $driver = $_GET['driver'];
        $_SESSION['driver'] = $driver;
}

这是我的javascript

$('#save').change(function() {
$.ajax({
                url: 'index.php',
                method: 'GET',
                data: {
                    'driver': 'example'
                }
});

这是我的控制台日志。从第一个更改触发器开始。我正在使用 dump_session 输出 php 变量的内容。 在 "Attempting ajax request" 之前将是在 ajax 请求中发送的新修改输入。

builder.js:168 (2) [_.P, _.P]
builder.js:170 ["Galerías Toluca"]
builder.js:171 Attempting ajax request
builder.js:318 array(2) {
  ["destinos"]=>
  string(22) "["Galerías Toluca"]"
  ["markers"]=>
  string(82) "[{"lat":19.2889701,"lng":-99.61342109999998},{"lat":19.2898867,"lng":-99.6226059}]"
}

builder.js:168 (3) [_.P, _.P, _.P]
builder.js:170 (2) ["Galerías Toluca", "IEDIS TOLUCA"]
builder.js:171 Attempting ajax request
builder.js:318 array(2) {
  ["destinos"]=>
  string(22) "["Galerías Toluca"]"
  ["markers"]=>
  string(82) "[{"lat":19.2889701,"lng":-99.61342109999998},{"lat":19.2898867,"lng":-99.6226059}]"
}

我假设您在更新 $_SESSION['driver'] = $driver; 之前已经使用了 unset($_SESSION['driver']); 并且问题仍然相同

试试这个代码

require "src/akSession.php" ; 

$session= akSession::getInstance();

if(isset($_GET['driver'])){ 
        $driver = $_GET['driver'];
        $session->set('driver', $driver);
}

不要忘记将 composer require aminelch/ak-session 添加到您的作曲家文件