selected 刷新頁面后selected選中的值保持不表(thinkphp 從控制器assign 傳值到js)


昨晚解決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(); // 輸出模板
      }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM