解决方案 »

  1.   

    传统的页面中,要使页面显示修改的结果,就必须刷新原页面
    而在刷新时还需要从新提交查询条件你可以使修改的目标页位于 iframe 而避免跳转,从而保证了原来的查询连接不丢失你也可以使用 ajax,用返回的内容替换相应的内容,从而免去了刷新
      

  2.   

    我的页面关系逻辑是这样的:<html><frameset cols="17%,1%,82%">  <frame src="left.php" scrolling="no"  frameBorder=0>
      <frame src="center.php"  scrolling="no"  frameBorder=0>
      <frame src="right.php" name="mainFrame" frameBorder=0></frameset></html>
    <frame src="right.php" name="mainFrame" frameBorder=0> 我的操作都在这个frame中完成的,修改页面就是 right.php 里的一个隐藏div ,确认修改,就会post 到修改内容的php action代码页。我能不能在action 代码也做处理呢。怎么处理呢。可以提供例子看看吗。谢谢
      

  3.   

    虽然你用的是框架结构,但是对数据的操作都只是在 mainFrame 中完成的
    这与普通的单页面并无区别,只要刷新页面时带上查询条件就不会有问题
      

  4.   

    你现在执行是用跳转页面做的,需要把查询条件带过去,再带回来查询。if (isset($_POST['modid']) &&!empty($_POST['modid']) ) {
        try{
        $id=$_POST['modid'];
        $email=$_POST['modemail'];
        $qq=$_POST['modqq'];
        $mobile=$_POST['modmobile'];
        $search=$_POST['search']; // 获取search,需用点修改按钮时也传过来
        $rs = $config[DAOIMPL]->modUser($id,$email,$qq,$mobile);
        $arr = rs2Array($rs);
        if ($arr&&$arr[0]['error_no']==0) {
            #echo '<script language=javascript>alert("修改成功!");window.location.href="../right.php?go=-1</script>'; // 这句不知道你的right.php是怎样写,反正就是跳到你想去的page再加search就可以,用下面这句。
            echo '<script language=javascript>alert("修改成功!");window.location.href="view/userSearchResult.php?search='.$search.'"</script>'; // 执行成功后,再搜寻一次,用获取的search条件。
     
        }
        else{
            echo '<script language=javascript>alert("修改失败,数据库操作出错!");"</script>';
        }
        }
        catch (Exception $e){
            echo '<script language=javascript>alert("修改失败,修改操作异常!");"</script>';
        }
    }
      

  5.   

    再贴上view/userSearchResult.php 查询页代码。<?php
    header("Content-type: text/html;charset=gbk");//输出编码,避免中文乱码$needDb = true; //enable db
    //$includePath = dirname(__FILE__);
    require_once "../inc/constant.php";
    require_once "../inc/config.php";
    require_once "../dao/dbpool.php";
    require_once "../dao/wrapper.php";
    require_once "../dao/implements.php";
    require_once "../inc/util.php";
    $page=isset($_GET['page'])?intval($_GET['page']):1;        //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
    $searchinfo=isset($_GET['search'])?($_GET['search']):'-1'; 
    $search=($searchinfo=='请输入关键字')?'-1':$searchinfo;
    $num=10;                                      //每页显示10条数据echo $searchinfo.'</br>';
    echo $search.'</br>';
    /*
    首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是
    总数据库除以每页显示的条数,有余进一。
    也就是说10/3=3.3333=4 有余数就要进一。
    */
     if ($config[NEEDDB]) {  //if need db
    $dbLink = DBPool::getLink($config[DBDRIVER]);
    $daoImpl = DAOImpl::getImpl($dbLink, $config[TABLEPRE][BACKEND]);
    $config[DBLINK] = $dbLink;
    $config[DAOIMPL] = $daoImpl;
    }
    $userRs = $config[DAOIMPL]->userSearchCount($search);
    //$adList = rs2Array($adRs);$userList=mysql_fetch_array($userRs);
    mysql_free_result($userRs);
    if(count($userList)>0){
    $total=$userList[0]['cn']; //查询所有的数据
    }
    else{
    $total=0;
    }echo '总条数:'.$total;
    $url='view/userSearchResult.php';//获取本页URL
    //页码计算
    $pagenum=ceil($total/$num);                                    //获得总页数,也是最后一页
    $page=min($pagenum,$page);//获得首页
    $prepg=$page-1;//上一页
    $nextpg=($page==$pagenum ? 0 : $page+1);//下一页
    $offset=($page-1)*$num;                                        //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。
    //开始分页导航条代码:
    $pagenav="显示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 条记录,共 $total 条记录 ";
    //如果只有一页则跳出函数:
    //if($pagenum<=1) return false;
    $pagenav.=" <a href=javascript:dopage('result','$url?page=1&search=$search');>首页</a> ";
    if($prepg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$prepg&search=$search');>前页</a> "; else $pagenav.=" 前页 ";
    if($nextpg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$nextpg&search=$search');>后页</a> "; else $pagenav.=" 后页 ";
    $pagenav.=" <a href=javascript:dopage('result','$url?page=$pagenum&search=$search');>尾页</a> ";
    $pagenav.="</select> 页,共 $pagenum 页";
    //假如传入的页数参数大于总页数,则显示错误信息
    If($page>$pagenum){
           Echo "Error : Can Not Found The page ".$page;
           Exit;
    }
     $userSearchRs = $config[DAOIMPL]->getUserSearchInfo($search,$offset,$num);While($user=mysql_fetch_array($userSearchRs)){
    echo  "<div class='sylist_content' id='result'>
    <div class='sylistu1'>
    <input type='checkbox' class='sycheck' name='checkbox'
    id='checkbox".$user['id']."'  value='". $user['id']."' />
    </div>
    <div class='sylistu2' >".$user ['user_name']."</div>
    <div class='sylistu3' >".$user ['email']."</div>
    <div class='sylistu4' >".$user ['qq']."</div>
    <div class='sylistu5' >".$user ['mobile']."</div>
    <div class='sylistu6'>".$user['status']."</div>
    <div class='sylistu7' >".$user ['if_frozen']."</div>
    <div class='sylistu8'>".$user['enddate']."</div>
    <div class='sylistu9' >".$user ['peerid']."</div>
    </div>";
    }//显示数据echo "<div class='sylist_content' id='pagein'>".$pagenav."</div>";
       
    ?>
      

  6.   


    我跳转到的页面right.php 是没有查询操作的,数据的查询是通过right.php页面中按钮来触发的。我能在加载页面后再触发这个按钮事件吗,
      

  7.   

    把查询条件的数组写进session就好了,没条件也更新成空数组,页码也写进去
    这样保证他编辑时session里有他最后进入的页面查询条件和页码
    写session还可以实现一些其他小扩展功能,比如查询历史,用户不小心关掉选项卡再进入还是最后一次查询等等
    不过它只适合网站后台,频繁写session不能用于大流量的页面
      

  8.   

    虽然你贴了许多代码,但并没有给解决问题带来线索
    在你的修改按钮操作代码中使用了 $_POST 变量,但你却没有给出 post 数据的来源
    返回的 ../right.php?go=-1 虽然不对,但意思是很明显的:
    表单提交产生了新页面,现在需要退回到原页面getContent 函数是用于刷新数据列表区域的,但从 dopage 函数的调用格式上看,应该是局部刷新的
    从 rigth.php 引入的 js 文件中,我看到了 ajax 字样。所以你至少有一部分操作是通过 ajax 完成的你可将提交由表单改为 ajax,然后在回调函数中调用 getContent 函数就可以了