我有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
。为什么会这样?
答案 0 :(得分:2)
您对JavaScript
和PHP
彼此之间的沟通方式感到困惑!
例如,使用以下代码,您正在有效地尝试将从AJAX请求获得的JavaScript
变量分配给PHP
部分:
<?php
$_SESSION['vrDok'] = vrdok;
$_SESSION['brDok'] = brdok;
?>
这是行不通的,因为所有PHP
表达式都在页面加载之前就已求值。
如果您需要在PHP
会话中保存这些值,则必须在发送AJAX请求的文件(对于您的情况为Pregled.php
)或PHP
文件中进行保存包含在其中。