【问题标题】:change php session variable using ajax使用ajax更改php会话变量
【发布时间】:2016-12-23 11:06:27
【问题描述】:
$('.folder').on('contextmenu', function(ev){
    ev.preventDefault();
    var a = $(this).attr('data-id');
    var b = $(this).text();
    $('.marked').removeClass('marked');
    var c = $('#path').html();
    var d = '<span class="spant" data-id=' + a + '>' + b + '</span>';
    var e = c + d;
    $.ajax({
        url: 'params.php',
        type: 'post',
        data: {
            'path': e,
            'par': a
            },
        success: function() {
            location.reload();
        }
    });

});

params.php

session_start();
if(isset($_POST['path'])) {
    $_SESSION['path'] = $_POST['path'];
}
else{
    $_SESSION['path'] = '<span class="spant" data-id=0>HOME</span>';
}

if(isset($_POST['par'])) {
    $_SESSION['par'] = $_POST['par'];
}
else{
    $_SESSION['par'] = 0;
}

admin.php

<?php
include ("params.php");
echo $_SESSION['path'];
echo $_SESSION['par'];
?>

回显的结果是旧值,因为未设置 $_POST 变量。
如何获取在 javascript 代码中设置的新值?

【问题讨论】:

标签: php ajax session


【解决方案1】:

你在请求中犯了一个错误,使用:method: "post" 而不是type: "post",所以难怪没有设置 post var :)

$('.folder').on('contextmenu', function(ev){
    ev.preventDefault();
    var a = $(this).attr('data-id');
    var b = $(this).text();
    $('.marked').removeClass('marked');
    var c = $('#path').html();
    var d = '<span class="spant" data-id=' + a + '>' + b + '</span>';
    var e = c + d;
    $.ajax({
        url: 'params.php',
        method: 'POST',
        data: {
            'path': e,
            'par': a
            },
        success: function() {
            location.reload();
        }
    });

});

希望这会解决它;)

干杯!

【讨论】:

    【解决方案2】:

    当您包含 params.php 时,它会将值重置回您的两个 if 块中的 else 条件。

    【讨论】:

    • 我尝试将 ajax 代码寻址到 admin.php 并将 if 代码从 params.php 移动到 admin.php - 结果相同。
    • 您登录 $_POST 以查看其中的内容吗?也许还可以直接在 admin.php 中调用 session_start()(而不是包含 params.php)以确保它不是那个代码?目前,如果每次调用 admin.php 时都没有 $_POST 值,它将恢复为您的 else 值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    相关资源
    最近更新 更多