首先貼代碼,代碼貼完再細說:
前段HTML:
1 <div id="studentRead" class="reading" >
2 <div class="class-table">
3 <div class="class-table-tit clearfix">
4 <h3 class="fl">班級課程表</h3>
5 <a class="fr" id ='studentEditKcb' attr="edit" onclick = "editKcb(this);" >編輯
6 </a>
7 </div>
8 <table border="0" cellspacing="0" cellpadding="0" id = "myTable">
9 <tr>
10 <th width="5%"></th>
11 <th width="19%">周一</th>
12 <th width="19%">周二</th>
13 <th width="19%">周三</th>
14 <th width="19%">周四</th>
15 <th width="19%">周五</th>
16 </tr>
17 <tr id = "focustr">
18 <td rowspan="4" class="td-bg">上<br/>午</td>
19 <volist name = "dataListStu" id = "val" offset="0" length='1'>
20 <volist name = "val" id = "value">
21 <td>
22 <input id = "focusId" readonly="true" maxlength='7' type="text" value="{$value}" />
23 </td>
24 </volist>
25 </volist>
26 </tr>
27 <volist name = "dataListStu" id = "val" offset="1" length='3'>
28 <tr>
29 <volist name = "val" id = "value">
30 <td>
31 <input readonly="true" maxlength='7' type="text" value="{$value}" />
32 </td>
33 </volist>
34 </tr>
35 </volist>
36 <tr>
37 <td rowspan="4" class="td-bg">下<br/>午</td>
38 <volist name = "dataListStu" id = "val" offset="4" length='1'>
39 <volist name = "val" id = "value">
40 <td>
41 <input readonly="true" maxlength='7' type="text" value="{$value}" />
42 </td>
43 </volist>
44 </volist>
45 </tr>
46 <volist name = "dataListStu" id = "val" offset="5" length='3'>
47 <tr>
48 <volist name = "val" id = "value">
49 <td>
50 <input readonly="true" maxlength='7' type="text" value="{$value}" />
51 </td>
52 </volist>
53 </tr>
54 </volist>
55 </table>
56 </div>
57 </div>
CSS:

JS部分:

後端部分:

開始細說:先來一張效果圖吧。編輯前:
編輯中(點右上角編輯後):
加了一些定位跟背景色的變化。讓用戶有更好體驗,
第一步: 在接這個需求的時候,首先我在想怎麼去獲取表格內的數據,我首先想到的是 利用for循環嵌套,而後加判斷,把數據往定義好的數組裡添加,但是後來一想那樣的話會導致
數據正確沒錯,但是存的數據有問題我打個比方 data[]={
data[1]={
data[1][1] = 0;
... ...
}
data[2]={ data[2][0]= 1;
... ...
}
... ...
}
意思就是我按照行循環的時候, 因為第一行跟第五行 多了一個<td>的存在, 會導致我的下標是從1開始 而不是跟其他行一樣從0開始。
後來我想不這樣做,我加一個獨有的class,就有了 var kecbInput = $(".activeStu"); 這句話。 這句話的意思是獲取所有class="activeStu" 的對象的集合。
至於余下的循環寫法 如果有看不懂的可以在文章裡直接提問,就不細說了。
第二步:寫完獲取值後,剩下的無非就是傳值到後台了,思路是每一個學生有一張屬於他自身獨有的課程表。還是老方法 利用ajax傳值。 在保存數據的時候,將數據保存成json格式進行存 儲。
第三步:傳值到前台頁面並展示, 其實這個地方 ,如果有不少同學說, 這個簡單著呢,不就是for循環 利用js 控制顯示嘛, 那麼就證明你沒有掌握php volist 標簽的好用之處!
利用volist 可以很輕松的如我貼出來的代碼一樣 將你想要賦的值 展現出來。
很多東西其實都在貼出來的代碼裡了,我表達能力不是很好,或者說我對這些東西理解也沒到一定的程度。
本來我是想 可以分享一些思路給大家, 但是寫著寫著發現 ,其實也沒什麼好說的。 不就這樣麼。 但是我還是覺得發出來好些吧, 可能有些人需要呢?雖然簡單也沒花多長時間。但是我相 信不停的分享,可能你的感悟就更深一些。