0

我有两个$_SESSION变量声明为数组index.php,比如:

$_SESSION['a'] = array(1,2,3);
$_SESSION['b'] = array(4,5,6);

index.php我从to进行 AJAX 调用result.php,其中会话变量的值更改为,例如:

$_SESSION['a'] = array(2,3,1,4);
$_SESSION['b'] = array(5,6);

我所做的是,我从两个数组中删除第一个元素并将其附加回第一个数组,$_SESSION['a'].

在成功的 AJAX 调用中,我想在index.php. 可能吗?

4

2 回答 2

2

是的,在成功的 ajax 调用中,您可以这样做。

于 2012-07-21T20:04:12.423 回答
0

这很简单。

在您results.php中,您只需返回带有一些 JSON 的新数据。

结果.php:

//set the session vars to whatever here....

//now, return them. In the example, I shall assign your session vars to temp vars.

$sessA=$_SESSION['a'];
$sessb=$_SESSION['b'];

echo json_encode(array('a'=>$sessA,'b'=>$sessb));

现在在您的 AJAX 中(假设您使用的是 jQuery):

$.getJSON('results.php', function(data){

alert(data.a);
alert(data.b);

});

你有它。

编辑:

在您的 index.php 中,您说您将会话变量设置为原始值。但是在您的评论中,您说您想使用 index.php 中的新变量。如果您在每个请求上将它们设置为 index.php 中的原始值,这将是不可能的。你应该做的是首先检查它们是否已经设置,然后做需要做的事情。像这样:

代替:

$_SESSION['a'] = array(1,2,3);
$_SESSION['b'] = array(4,5,6);

做这个:

if ( isset($_SESSION['a']) === false && isset($_SESSION['b']) === false )
{

# - The vars are not already set...so it's okay to set them to its original value.

$_SESSION['a'] = array(1,2,3);
$_SESSION['b'] = array(4,5,6);

}
于 2012-07-21T20:11:32.000 回答