在下一个按钮单击下一个按钮时访问会话数组

时间:2012-09-08 11:03:39

标签: php mysql

如何在下一次按钮点击时从会话数组中获取下一个数组元素? 我试过next($_SESSION['qid'])它不起作用

if((int)$_SESSION['qn']<=20) {
  $_SESSION['qn']=$_SESSION['qn']+1;
  $_SESSION['qid']++;
}

我也试过

$_SESSION['qid']=next($_SESSION['qid']);

但这没效果。有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

_SESSION数组是一个关联数组。您无法通过数字索引访问它,但必须指定索引名称(例如,在代码中$_SESSION['qid'])。无论如何,您仍然可以使用next()函数,传递数组$_SESSION(请参阅此处:http://php.net/manual/en/function.next.php)。使用它的正确方法是:

$element = next($_SESSION)

你可能想把这段代码放在一个循环中。

此外,您的代码:

$_SESSION['qn']=$_SESSION['qn']+1;

表示:将$_SESSION['qn']加上$_SESSION['qn']的值分配给1,这不是您想要的。 如果您想要NON关联数组中的下一个元素,您应该使用:

$arr = $arr[$i+1]

其中$i是整数值。

更新:关于您的评论,为什么不在$_SESSION['questions']内保存常规数组(非关联)?这样你就可以通过这种方式获得问题:

$_SESSION['questions'][0], $_SESSION['questions'][1]...

现在你可以在一个周期内使用它,或者你想要的任何东西。 E.g:

echo $ _SESSION ['questions'] [$ current_question_id + 1];

其中$current_question_id将是当前问题索引,将在下一个按钮上每个clic更新(+1)