html - 怎么使用循环做出一个课程表?
大家讲道理
大家讲道理 2017-04-18 09:49:16
0
1
437

使用django做一个课程表

我的课程表类是这样写的

  • 课程ID:ForeignKey

  • 开始周数:int

  • 持续周数:int

  • 星期:int

  • 开始时刻:int

  • 持续课时:int

应该怎样在模版里循环出一个table加上课程,能实现吗?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

reply all(1)
大家讲道理

Get the current week. First compare current week > start week && current week < start week + last week. Then determine the day of the week, same as above. Then determine the starting time.
Make these things in the array first, because the contents of the array can be changed.
Finally print out the array

arr = [//课程名 星期数 开始课时 持续课时 开始周数 持续周数
    ["IOS应用开发(考查) (限选)",1,1,4,1,15],
    ["计算机二维动画制作(考查) (限选)",  2,  1,  4,  1,  15],
    ["PHP动态网页技术(考查) (限选)",  2,  5,  2,  1,  15],
    ["PHP动态网页技术(考查) (限选)",  3,  1,  2,  1,  15],
    ["职业发展与就业指导(考查) (必修)",  3,  3,  2,  2,  13],
    ["计算机二维动画制作(考查) (限选)",  4,  1,  4,  1,  15],
    ["IOS应用开发(考查) (限选)",  5,  1,  4,  1,  15],
    ["毕业设计(论文) 指导(考查) (必修)",  5,  5,  2,  1,  15]
];
// document.write("<table border=1>");
//     document.write("<tr><th>时间段</th><th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th><th>星期五</th></tr>");
//         for(var i = 1 ; i < 13 ;i++){//循环一天有多少课 1-13 一共12节课 4 4 4 。
//             document.write("<tr>");
//                 document.write("<td>"+i+"</td>");
//                 var tag = 1;//每次先读取周一的
//                 for(var j =0 ; j < arr.length ; j++){
//                     if(tag < arr[j][1]){//当读到周三了,我的标记还是周一,那么就证明,我缺少两天的标记
//                         for(tag ; tag < arr[j][1] ; tag++){
//                             // document.write("<td></td>");
//                         }
//                     }
//                     if(arr[j][2] == i){//循环一周的。
//                         tag = arr[j][1]+1;
//                         document.write("<td rowspan="+arr[j][3]+">"+arr[j][0]+"</td>");
//                     }
//                 }
//             document.write("</tr>");
//         }
// document.write("</table>");

var arr1=[["序号","星期一","星期二","星期三","星期四","星期五"]];
for(var i = 0 ; i < 13 ; i++){
    arr1.push([i+""]);
    for(var j = 0 ; j < 5 ; j++){
        arr1[arr1.length-1].push(" ");
    }
}//构建了一个课程表数组

for(var i = 0 ; i < arr.length ; i++){
    var name = arr[i][0];
    var week = arr[i][1];
    var start = arr[i][2];
    var startNum = arr[i][3];
    for(var j = 0 ; j < startNum ; j++){
        if( j == 0){
            arr1[start+j][week]={content:name,rowspan:startNum}
        }else{
            arr1[start+j][week]=null;
        }
    }
}//渲染虚拟table

var str = "";
str += "<table border>";
for(var i = 0 ; i < arr1.length ; i++){
    str+="<tr>"
    for(var j = 0 ; j < arr1[i].length ; j++){
        if(arr1[i][j] == null){

        }else if((typeof arr1[i][j]) == "string"){
            str+="<td>"+arr1[i][j]+"</td>";
        }else{
            str+="<td rowspan="+arr1[i][j].rowspan+">"+arr1[i][j].content+"</td>"
        }
    }    
    str+="</tr>"
}
str += "</table>";
document.write(str);
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template