院線片的後台功能配分不多,但是刻畫面和做功能滿花時間的,因此在處理這個功能時,要考慮一下解題的策略,安排適合的步驟來進行,才能在有限的時間內完成,避免花太多時在這裏而擔誤了其它功能的製作
院線片列表
- 建立
/back/movie.php
檔案,並撰寫院線片列表,為避免標籤的css太過混亂,可以使用class來簡化html的內容,css的部份另外撰寫。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67<style>
.item div{
box-sizing: border-box;
color:black;
}
.item{
background-color: white;
width:100%;
display:flex;
padding:3px;
box-sizing: border-box;
margin:3px 0;
}
.item > div:nth-child(1){
width:15%;
}
.item > div:nth-child(2){
width:12%;
}
.item > div:nth-child(3){
width:73%;
}
</style>
<!--最外層可以簡單設定個高度及overflow,避免內容太多會拉長版面-->
<div style="width:100%;height:415px;overflow:auto">
<div class="item">
<div>
<img src="./img/<?=$movie['poster'];?>" style="width:100%">
</div>
<div>
分級:<img src='./icon/03C0<?=$movie['level'];?>.png' style='width:25px'>
</div>
<div>
<div style="display:flex;width:100%">
<div style="width:33.33%">
片名:<?=$movie['name'];?>
</div>
<div style="width:33.33%">
片長:<?=$movie['length'];?>
</div>
<div style="width:33.33%">
上映時間:<?=$movie['ondate'];?>
</div>
</div>
<div>
<button class='show-btn' data-id="<?=$movie['id'];?>"><?=($movie['sh']==1)?'顯示':'隱蔵';?></button>
<button class='sw-btn'
data-id="<?=$movie['id'];?>"
data-sw="<?=($idx!==0)?$movies[$idx-1]['id']:$movie['id'];?>">往上</button>
<button class='sw-btn'
data-id="<?=$movie['id'];?>"
data-sw="<?=((count($movies)-1)!=$idx)?$movies[$idx+1]['id']:$movie['id'];?>">往下</button>
<button class="edit-btn" data-id="<?=$movie['id'];?>">編輯電影</button>
<button class="del-btn" data-id="<?=$movie['id'];?>">刪除電影</button>
</div>
<div>
劇情介紹:<?=$movie['intro'];?>
</div>
</div>
</div>
</div>
顯示/隱藏按鈕
- 使用和題組二按讚功能類似的方式來處理前端切換顯示文字的功能,後端資料的更新則是利用ajax來完成
/back/movie.php1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17$(".show-btn").on("click",function(){
//取得按鈕資料的id
let id=$(this).data('id');
//將按鈕中的id資料傳向後端的show.php
$.post("./api/show.php",{id},()=>{
location.reload()
//$(this).text(($(this).text()=='顯示')?"隱藏":"顯示");
/* switch($(this).text()){
case "隱藏":
$(this).text("顯示")
break;
case "顯示":
$(this).text("隱藏")
break;
} */
})
}) - 撰寫後端更新顯示狀態程式
/api/show.php1
2
3
4
5
6include_once "db.php";
$row=$Movie->find($_POST['id']);
//利用餘數原理讓顯示值在1及0做切換
$row['sh']=($row['sh']+1)%2;
$Movie->save($row);
排序按鈕
- 複製預告片海報管理的排序js程式碼,只要變更資料表名就可以直接套用原本的後端
/api/sw.php
程式,不用再寫新的後端程式1
2
3
4
5
6
7
8$(".sw-btn").on("click",function(){
let id=$(this).data('id');
let sw=$(this).data('sw');
let table='movie'
$.post("./api/sw.php",{id,sw,table},()=>{
location.reload()
})
})