<?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就跳出了!
家里的电脑执行完全没有问题!
单位的电脑同样的环境却无法输出!
求解啊,什么问题!

解决方案 »

  1.   

    if ($i=$page) {
    应为
    if ($i==$page) {贴出 print_r($_POST) 和 print_r($_SESSION) 的结果
      

  2.   


    session[$i]已经输入了
    session[total_idstr]值为空
      

  3.   

    $_SESSION[total_idstr]=implode("",$_SESSION[idstr]);
    但你的 $_SESSION[idstr] 不是空的吗?
      

  4.   

    是啊 ,关键$_SESSION[idstr]=array_merge($_SESSION[idstr],$_SESSION[$i])这段没有执行
    刚调整了一下$_SESSION[idstr]=array_merge($_SESSION[$i])
    第一页有输出
    第二页的输出仍旧为第一页的
      

  5.   

    要执行 $_SESSION[idstr]=array_merge($_SESSION[idstr],$_SESSION[$i]); 成功的话
    你需要保证 $_SESSION[idstr] 是数组才行
      

  6.   

    <?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]);};
    }; //进行循环,并将每页选择的复选框信息储存到数组中
    $_SESSION[total_idstr]=implode("",$_SESSION[idstr]); //将数组转换为字符串,包含了所有复选框选择的信息    
    echo $_SESSION[total_idstr]."total_idstr传值";
    print_r($_POST);
    print_r($_SESSION);
    ?>
    不懂啊。又好了
    $i==$page 改成逻辑判断了,我估计是这里的问题,现在都好了
    难道apache 和 php 有延时更新的问题?
      

  7.   

    不行啊 还是不行啊 我把session 释放了 初始状态下$_session[idstr]不是数组吗?刚才可能赋值过了变成数组能用了
    但是$_session[idstr]怎么申明其本身就是数组呢,赋值array之后新的内容就不能添加了啊for循环就没意义了
      

  8.   

    session_start();
    if(! isset($_SESSION['idstr'])) $_SESSION['idstr'] = array();
      

  9.   

    问题是赋值array 我切到第二页的时候这个array()会变成空值替换掉啊 没有p1=>1|2|的保留信息,直接变成p2=>3|4|,而不是我要的p1=>1|2|,p2=>3|4|