我在$_SESSION
中声明为数组的两个index.php
变量,例如:
$_SESSION['a'] = array(1,2,3);
$_SESSION['b'] = array(4,5,6);
我从index.php
到result.php
进行AJAX调用,其中会话变量的值发生了变化
,说:
$_SESSION['a'] = array(2,3,1,4);
$_SESSION['b'] = array(5,6);
我所做的是,我从两个数组中删除第一个元素并将其追加到第一个数组$_SESSION['a']
。
成功进行AJAX调用后,我想打印index.php
中两个变量的第一个元素。有可能吗?
答案 0 :(得分:2)
是的,在成功的ajax通话中,您可以这样做。
答案 1 :(得分:0)
这很简单。
在您的results.php
中,您只需使用一些JSON返回新数据。
result.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);
}