昨晚解决select 刷新页面以后选择的值保持不变,要想让seleted不变,有两种思路,

1,在提交表单的时候,将所选择的option的属性设为checked .

2.将option的value或者index带走,事实上这个提交的时候直接就带走了value,创建一个数组,php 用array_search()找到value的index的值,刷新过后再将index的值传入,使用jquery.在页面加载完毕的时候将该index的值选为checked。

我选择的是第二种方法。代码如下,亲测有效;

前台代码(粗体为关键代码)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>后台管理</title>
<link rel="stylesheet" href="__CSS__/main.css" >
<link rel="stylesheet" href="__CSS__/validate.css">
<script type="text/javascript" src="__JS__/jquery.js"></script>
<script type="text/javascript" src="__JS__/common.js"></script>
<script type="text/javascript" src="__JS__/validate.js"></script>
{$code}
</head>
<body>
<div class="container">
<form name="form1" action="__CONTROLLER__/info">
<h1>学员信息列表&nbsp;
<select id="static" name="rank" onchange="document.form1.submit()" >
<option value="id" >按注册时间查看</option>
<option value="sign">按签到次数查看</option>
<option value="score">按积分数查看</option>
</select>
</h1></form>
<table cellpadding="3" cellspacing="1" align="center" class="box">
<tr>
<th width="50px">头像</th>
<th width="">账号</th>
<th>姓名</th>
<th width="">性别</th>
<th width="">年龄</th>
<th width="">电话</th>
<th width="">城市</th>
<th width="">店铺</th>
<th width="">积分</th>
<th width="">签到次数</th>
</tr>
 <volist name='list' id='vo'>
   <tr class="list">
    <td align="center"><img width="50px" src="__IMG__/head/{$vo.picture}"/></td>
    <td align="center">{$vo.account}</td>
    <td align="center">{$vo.name}</td>
    <td align="center">{$vo.gender}</td>
    <td align="center">{$vo.age}</td>
    <td align="center">{$vo.phone}</td>
    <td align="center">{$vo.city}</td>
    <td align="center">{$vo.shop}</td>
    <td align="center">{$vo.score}</td>
    <td align="center">{$vo.sign}</td>
   </tr>
 </volist>
</table>
<div> {$pap}</div>
</div>
</body>
</html>
由于我使用的人thinkphp框架,所以设计一个问题就是从控制器穿变量到前台js代码的问题,如果直接在在控制器中 $this->assign('code',$code);

在前台js中调用{$code}是没有作用的,所以此时需要在后台直接将<script>.....<script/>中间的代码全部assign到变量。

控制器处理代码如下:

后台代码

public function info()
     {
        $shop=M('stu');
        $count = $shop->count();//查询满足要求的总记录数
        $Page = new \Think\Page($count,6);// 实例化分页类 传入总记录数和每页显示的记录数(2)
        $Page->setConfig('prev','上一页');
        $Page->setConfig('next','下一页');
        $Page->setConfig('last','尾页');
        $Page->setConfig('first','首页');
        $show = $Page->show();// 分页显示输出
         if(I('rank'))//下拉列表选择查看方式
        {
            if(I('rank')=='id')
            {
            $list = $shop->limit($Page->firstRow.','.$Page->listRows)->select();
            }
            else{
                 $list = $shop->limit($Page->firstRow.','.$Page->listRows)->order(I('rank') .' desc')->select();
            }
             
        }
        else
        {
            $list = $shop->limit($Page->firstRow.','.$Page->listRows)->select();
        }
        for($i=0;$i<$count;$i++)//对取出分页数据进行处理,因为之前的签到次数初始值为-1
        {
             $list[$i]['sign']=$list[$i]['sign']+1;
        }
        $a=array('id','sign','score');
        $index=array_search(I('rank'),$a);
        $code='<script type="text/javascript">
        $(document).ready(function(){
           var selectedIndex = '.$index.';
             if(selectedIndex != null) {
             document.getElementById("static").selectedIndex = selectedIndex;
             } ;
        })  
           </script>' ;
        $this->assign('code',$code);
        $this->assign('list',$list);//把各列赋值给list
        $this->assign('pap',$show);// 赋值分页输出
        $this->display(); // 输出模板
      }

selected 刷新页面后selected选中的值保持不表(thinkphp 从控制器assign 传值到js)的更多相关文章

  1. 解决Vuex持久化插件-在F5刷新页面后数据不见的问题

    页面刷新后,想保存页面未保存的数据.我们总是习惯于放在浏览器的sessionStorage和localStorage中.但是用了vue后,vuex便可以被应用了. vuex优势:相比sessionSt ...

  2. vue 页面间使用路由传参数,刷新页面后获取不到参数的问题

    情况 情况再简单说明一下: 有三个页面(a-列表页面,b-内页1,c-内页2),页面a->页面b->页面c有参数传递.从a进入b后,刷新b页面拿不到a页面传进来的参数.或者b页面再进入c页 ...

  3. 刷新页面后,让控制台的js代码继续执行

    在各种限时,秒杀活动中,有个自动循环的点击的工具是很重要的. 为了方便起见,我们把Js代码放在浏览器的控制台执行,但是刷新页面后,js代码就清空了,也就无法执行. 可以用js代码实现一个不受页面刷新影 ...

  4. JS利用cookie记录当前位置实现刷新页面后还可以保持菜单栏的展开或闭合

    代码如下,重点是JS部分的代码(部分样式引用的是Bootstrapt中的):   <style> .sidebar-menu .special{ font-size: 16px; marg ...

  5. jsp登录页面,展示错误信息,刷新页面后错误依然存在解决方案

    在做登录页面的时候,通常使用form表单同步提交的方法进行提交的,也就是在form表单里去写action,如果登录失败,jsp通过jstl表达式获取错误信息展示在页面上,但是有一个问题就是,即使你刷新 ...

  6. 页面的div中有滚动条,js实现刷新页面后回到记录时滚动条的位置

    当div中绑定数据,给它一个属性overflow-y: scroll,添加长度大小,使其能够出现滚动条:每次刷新的时候滚动条总是会出现在最上方,这使我很头疼,经过查阅网上资料,返现两种方法可行.如下: ...

  7. JS刷新页面后滚动条的位置不变

    有时候,在网页中点击了页面中的按钮或是刷新了页面后,页面滚动条又 会回到顶部,想看后面的记录就又要拖动滚动条,或者要按翻页键,非常不方便,想在提交页面或者在页面刷新的时候仍然保持滚动条的位置不变,最好 ...

  8. 【Lua】遍历目录结果输出到页面中,刷新页面后出现500 Internal Server Error

    在通过lua获取目录json字符串,然后作为数据源,通过Extjs生成树的过程中,发生了一个奇怪的问题,那就是获取目录json字符串然后传递给Extjs生成树的这个过程中,一开始都是很顺利的就生成了, ...

  9. 使用element-ui的el-menu导航选中后刷新页面保持当前选中

    <el-menu :default-active=‘$route.path‘ :router=‘true‘ :unique-opened=‘true‘ :default-openeds=&quo ...

随机推荐

  1. 51nod 1174 1174 区间中最大的数

    题目链接:51nod 1174 1174 区间中最大的数 ST(Sparse Table)算法学习参考博客:http://blog.csdn.net/niushuai666/article/detai ...

  2. NXOPEN环境配置

    1.找到NX中的vc文件夹 D:\study software\NX\NX9.0\UGOPEN\vs_files

  3. Hammer.js

    一.前言 移动端框架当前还处在初级阶段,但相对于移动端的应用来说已经有很长时间了.虽然暂时还没有PC端开发的需求量大,但移动端的Web必然是一种趋势,在接触移动端脚本的过程中,最开始想到的是juqer ...

  4. EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(三)

    前言 在上一篇中,我们依靠着EasyUI强大的前端布局特性把前端登录界面和主界面给搭建完成了.这一篇我们就要尝试着把整个解决方案部署到云端呢,也就是Visual Studio Online(TFVC) ...

  5. 1476. Lunar Code

    http://acm.timus.ru/problem.aspx?space=1&num=1476 由于前一列对后一列有影响,所以需要保持前一列的状态, 但无需用状态压缩来保存(也保存不了) ...

  6. 使用Crowd2.7集成Confluence5.3与JIRA6.1,并安装、破解及汉化,实现单点登录【原创】

      鉴于目前没有针对Crowd.Confluence.Jira安装.集成和破解最新的方法,总结今天安装.破解及集成的经验,编写此文,方便大家进行配置也方便自己以后参考.此文参考多篇破解文章,并经过作者 ...

  7. useful tips for win7--close the noise volume(关掉win7开机、系统操作的声音)

    how to close the voice of your PC? i)   open your computer and then press F2 to enter the BIOS set-u ...

  8. 使用rem缩放网页的javascript代码

    <script type="text/javascript"> (function(doc, win) { var docEl = doc.documentElemen ...

  9. Html标签第二课css

    css(Cascading Style Sheet)叠层样式表.用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言. 一:样式三种控制方法 1.行内样式: <div  style=& ...

  10. 【转】Memcached安装

    解析:Memcached是什么? Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度. 一.软件版本    ...