test.php 假如有50条记录,被分成5页显示。在第一页选择后点击下一页进行选择、再返回上一页时前面所做的选择全没了
 - -! 再点击下一页时后一页的选择也没了... 网上有说用COOKIE的,有说用SESSION的....无奈自个儿还是整不出来!也没有哪位高手帮忙解决下,最好给个示例~谢谢囖!<form action="test2.php" method="post">
   <table>
   <?php
   require_once("page.class.php");//分页类
   $db=mysql_connect("localhost","root","123456");
   mysql_select_db("test",$db);   $pagesize=10;
   $page=new Pager($pageSize,&$db,$sql,$pageNo,10);//$PageSize->每页要显示的数量,&$db->数据库连接资源,$sql->SQL语句,$pageNo->当前第几页,10->10页换行
$currentPage=$page->getStartNo();//起始页
$totalPage=$page->getPageCount();//总页数
$query=mysql_query("select * from question limit $currentPage,$pagesize");
   while($rs=mysql_fetch_array($query)){
   ?>
   <tr>
   <td>
   问题:<?php echo $rs['question'];?>
   </td>
   </tr>
   <tr>
   <td>
   <input type="radio" name="<?php echo $rs['id'];?>" value="A">A.<?php echo $rs['option1'];?>
   </td>
   </tr>
   <tr>
   <td>
   <input type="radio" name="<?php echo $rs['id'];?>" value="B">A.<?php echo $rs['option2'];?>
   </td>
   </tr>
   <tr>
   <td>
   <input type="radio" name="<?php echo $rs['id'];?>" value="C">A.<?php echo $rs['option3'];?>
   </td>
   </tr>
   <tr>
   <td>
   <input type="radio" name="<?php echo $rs['id'];?>" value="D">A.<?php echo $rs['option4'];?>
   </td>
   </tr>
   <?php
   }//循环结束
   $url="test.php?";
$page->subPageCss2($url);//分页
   mysql_close();
   ?>
   </table>
</form>

解决方案 »

  1.   

    session就可以了,
    根据页面保存checkbox选择项,
    如果返回上一次,取出保存的值,然后勾选选项.
    可以用php,也可以用js勾选.
      

  2.   

    呵呵,LZ用的不是checkbox,是radio控件。session是可以保存,问题是当考试者做完本页面,转向下一页的时候如何给session赋值?
      

  3.   

    有啥困扰的,如果你真正明白session的机制,这个就是什么问题了。
    建议你先去看看session的教程,然后在去思考你这个问题。
      

  4.   

    将选中的项纯在库中,然后取值。你可以做一个函数。在每个radion中调用
    <input type="radio" name="gender" value="F" <?php if ($gender == 'F') {echo 'checked="checked"';} ?>/>
      

  5.   

    <?
    session_start();
    ?>
    <html>
    <head><title>选择</title></head>
    <body>
    <form action = "test1.php" method = "post">
    <input type="radio" name="fruit" value = "a" <?php echo $_SESSION['a'];?>>a<br>
    <input type="radio" name="fruit" value = "b" <?php echo $_SESSION['b'];?>>b<br>
    <input type="radio" name="fruit" value = "c" <?php echo $_SESSION['c'];?>>c<br>
    <input type="submit" value="提交">
    </form>
        <a href="test1.php">下一页</a>
    </body>
    </html>
    <?
    session_start();
    if($_POST['fruit']=='a')
    {
         $_SESSION['a']='checked';
     unset($_SESSION['b']);
         unset($_SESSION['c']);
         echo 'a';
    }
    if($_POST['fruit']=='b')
    {
         $_SESSION['b']='checked';
     unset($_SESSION['a']);
         unset($_SESSION['c']);
         echo 'b';
    }
    if($_POST['fruit']=='c')
    {
        $_SESSION['c']='checked';
    unset($_SESSION['a']);
        unset($_SESSION['b']);
        echo 'c';
    }
    ?><html>
    <head><title></title></head>
    <body>
    test1.php<br>
    <a href="test.php">上一页</a>
    </body>
    </html>试一下这个吧,同一个radion里的name必须是相同的
      

  6.   

    那你可以用js模拟tab,也就是说你所有问题都在一个页面上,每个tab显示一部分问题,其它tab隐藏
    还有一种方法是在转向下一页时用js保存cookie,最后再用程序取得cookie值处理
      

  7.   

    cookie咯,每条记录的id都是唯一的,利用这个id做cookie的key,你给每个radio控件都绑定个onclick事件,每选一个选项,就用cookie存储住id和value,利用javascript操作cookie,页面load的时候再绑定个onload事件,遍历页面的radio控件,根据每个radio的id去找cookie里的值,发现之前有存储就设置radio值为cookie值