$ _SESSION var否通过

时间:2018-08-01 09:01:57

标签: javascript php session

我有php页面,其中包含两个像这样的javascript函数:

function PregledDokumenta(id)
{
    var info = id.split('-');
    var vrdok = info[0];
    var brdok = info[1];

    $.ajax({
        type: "POST",
        url: "../Php/Dokument/Pregled.php",
        data: { vrDok: vrdok, brDok: brdok },
        success: function(returnedData)
        {
            document.getElementById('Content').innerHTML = returnedData;
            <?php 
                $_SESSION['vrDok'] = vrdok;
                $_SESSION['brDok'] = brdok;
            ?>

    <?php
        $a = $_SESSION['vrDok'];
        echo("alert($a);");
        ?>
        }
    });
}

function UnosNoveStavke()
{
    var vrdok = <?php echo($_SESSION['vrDok']);?>;
    var brdok = <?php echo($_SESSION['brDok']);?>;

    <?php
        $a = $_SESSION['vrDok'];
        echo("alert($a);");
        ?>
    $.ajax({
        type: "POST",
        url: "../Php/Dokument/IzborRobe.php",
        data: {vrDok: vrdok, brDok: brdok},
        success: function(returnedData)
        {
            document.getElementById('Content').innerHTML = returnedData;
        }
    })
}

因此,当我加载页面并按下按钮时,我会运行PregledDokumenta(id)功能。在其中,我从元素的id传递了一些值,然后回显了一些其他文本和按钮,因为您可以看到我向$_SESSION['vrDok']发出警报,以查看是否已分配它并返回值。然后,当我单击按钮(运行第一个功能后大约10秒钟)时,我从第一个功能中回显了我运行的第二个UnosNoveStavke函数。在那里,您可以看到我再次发出警报,以查看$_SESSION是否返回值,但它返回undefined。为什么会这样?

1 个答案:

答案 0 :(得分:2)

您对JavaScriptPHP彼此之间的沟通方式感到困惑!

例如,使用以下代码,您正在有效地尝试将从AJAX请求获得的JavaScript变量分配给PHP部分:

<?php 
    $_SESSION['vrDok'] = vrdok;
    $_SESSION['brDok'] = brdok;
?>

这是行不通的,因为所有PHP表达式都在页面加载之前就已求值。

如果您需要在PHP会话中保存这些值,则必须在发送AJAX请求的文件(对于您的情况为Pregled.php)或PHP文件中进行保存包含在其中。