<?php
session_start();
$page=$_POST['page']; //传递回page值进行循环比较
$pagestr="p".$_POST['page']; //将page值转为字符数组的关键字
$pagecount=$_POST['pagecount'];
$idstr=$_POST['idstr'];for($i=1;$i<=$pagecount;$i++){
if ($i=$page) {
$_SESSION[$i]=array($pagestr=>$idstr);
$_SESSION[idstr]=array_merge($_SESSION[idstr],$_SESSION[$i]);};
break;}; //进行循环,并将每页选择的复选框信息储存到数组中
$_SESSION[total_idstr]=implode("",$_SESSION[idstr]); //将数组转换为字符串,包含了所有复选框选择的信息
echo $_SESSION[total_idstr];
?>做了一个获取复选框的会话,用字符串作为键值P1表示第一页,然后将第一页选择的内容输入到数组,格式为p1=>1|2|,问题在合并数组的时候无发获得相应的值,echo没有输出,不知道是怎么回事!怕碰到死循环,所以在循环到$i=$page就跳出了!
家里的电脑执行完全没有问题!
单位的电脑同样的环境却无法输出!
求解啊,什么问题!
session_start();
$page=$_POST['page']; //传递回page值进行循环比较
$pagestr="p".$_POST['page']; //将page值转为字符数组的关键字
$pagecount=$_POST['pagecount'];
$idstr=$_POST['idstr'];for($i=1;$i<=$pagecount;$i++){
if ($i=$page) {
$_SESSION[$i]=array($pagestr=>$idstr);
$_SESSION[idstr]=array_merge($_SESSION[idstr],$_SESSION[$i]);};
break;}; //进行循环,并将每页选择的复选框信息储存到数组中
$_SESSION[total_idstr]=implode("",$_SESSION[idstr]); //将数组转换为字符串,包含了所有复选框选择的信息
echo $_SESSION[total_idstr];
?>做了一个获取复选框的会话,用字符串作为键值P1表示第一页,然后将第一页选择的内容输入到数组,格式为p1=>1|2|,问题在合并数组的时候无发获得相应的值,echo没有输出,不知道是怎么回事!怕碰到死循环,所以在循环到$i=$page就跳出了!
家里的电脑执行完全没有问题!
单位的电脑同样的环境却无法输出!
求解啊,什么问题!
应为
if ($i==$page) {贴出 print_r($_POST) 和 print_r($_SESSION) 的结果
session[$i]已经输入了
session[total_idstr]值为空
但你的 $_SESSION[idstr] 不是空的吗?
刚调整了一下$_SESSION[idstr]=array_merge($_SESSION[$i])
第一页有输出
第二页的输出仍旧为第一页的
你需要保证 $_SESSION[idstr] 是数组才行
session_start();
$page=$_POST['page']; //传递回page值进行循环比较
$pagestr="p".$_POST['page']; //将page值转为字符数组的关键字
$pagecount=$_POST['pagecount'];
$idstr=$_POST['idstr'];for($i=1;$i<=$pagecount;$i++){
if ($i==$page) {
$_SESSION[$i]=array($pagestr=>$idstr);
$_SESSION[idstr]=array_merge($_SESSION[idstr],$_SESSION[$i]);};
}; //进行循环,并将每页选择的复选框信息储存到数组中
$_SESSION[total_idstr]=implode("",$_SESSION[idstr]); //将数组转换为字符串,包含了所有复选框选择的信息
echo $_SESSION[total_idstr]."total_idstr传值";
print_r($_POST);
print_r($_SESSION);
?>
不懂啊。又好了
$i==$page 改成逻辑判断了,我估计是这里的问题,现在都好了
难道apache 和 php 有延时更新的问题?
但是$_session[idstr]怎么申明其本身就是数组呢,赋值array之后新的内容就不能添加了啊for循环就没意义了
if(! isset($_SESSION['idstr'])) $_SESSION['idstr'] = array();