首页 > 解决方案 > $_SESSION var 没有通过

问题描述

我有 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。为什么会这样?

标签: javascriptphpsession

解决方案


JavaScript您对如何相互PHP沟通感到非常困惑!

例如,使用以下代码,您实际上是在尝试JavaScript将从 AJAX 请求中获得的变量分配到PHP各个部分:

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

这是行不通的,因为所有PHP表达式都在页面加载之前进行了评估。

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


推荐阅读