更改时更新PHP会话变量

时间:2018-11-17 15:19:37

标签: javascript php session-variables

我在输入上有一个事件侦听器,该侦听器执行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变量的内容。 在“尝试ajax请求”之前,将是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}]"
}

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

尝试此代码

require "src/akSession.php" ; 

$session= akSession::getInstance();

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

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