預告片海報管理
編輯預告片海報管理 rr.php
製作表單
製作海報管理表單
<form action="api.php?do=post" method="post">
<!-- 設定div高度,超出時出現卷軸,避免跑版,超出題目規定的1024*768 -->
<div style="overflow-y:scroll; height:250px">
<h3>輪播效果</h3>
<select name="ani">
<option value="1">淡入淡出</option>
<option value="2">滑入滑出</option>
<option value="3">縮放大小</option>
</select>
<h3>預告片清單</h3>
<?php
// 不使用表格,省去打tr td等等標籤的時間
// 直接用hr和br分隔比較快
// 排序直接用數字輸入欄位,不用往上往下按鈕,節省時間
$result = All("select * from post order by seq");
foreach($result as $row)
{
?>
<input type="hidden" value="<?=$row["id"]?>" name="id[]"><br>
預告片海報: <img src="img/<?=$row["file"]?>" height="100px"><br>
預告片片名: <input type="text" value="<?=$row["text"]?>" name="text[]"><br>
預告片排序: <input type="number" value="<?=$row["seq"]?>" name="seq[]"><br>
<input type="checkbox" value="<?=$row["id"]?>" name="dis[]" <?=($row["display"] == 1)?"checked":""?>>顯示
<input type="checkbox" value="<?=$row["id"]?>" name="del[]">刪除<br>
<hr>
<?php
}
?>
</div>
<div>
<input type="submit">
<input type="reset">
</div>
</form>
<hr>
<h3>新增預告片海報</h3>
<div style="overflow-y:scroll; height:40%">
<form action="api.php?do=npost" method="post" enctype="multipart/form-data">
預告片海報<input type="file" name="file"> 預告片片名<input type="text" name="text">
<input type="submit">
</form>
</div>
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
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
處理表單資料
在 sql.php
加入新function
// 檔案上傳
// $file 為 $_FILES
// $table 為 資料表
// $id 為 要上傳檔案的資料id
function Upload($file, $table, $id){
// 以現在的時間戳記當檔名
global $now;
foreach($_FILES as $name => $file){
// 抓取副檔名
$ext = pathinfo($file["name"], PATHINFO_EXTENSION);
// 和現在時間組合成完整檔名
$fn = $now.".".$ext;
// 移動到img資料夾
copy($file["tmp_name"], "img/".$fn);
// 資料庫更新
All("update ".$table." set ". $name." = '".$fn."' where id = '".$id."'");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
在 api.php
新增表單處理程式碼
// 修改海報
case "post":
// 更新動畫樣式
All("update ani set ani = '".$_POST["ani"]."'");
// 更新各筆的文字、顯示順序
for($i=0;$i<count($_POST["id"]); $i++){
All("update post set text = '".$_POST["text"][$i]."', seq = '".$_POST["seq"][$i]."' where id = '".$_POST["id"][$i]."'");
}
// 先把所有海報設為不顯示
All("update post set display = 0");
// 有傳資料來的海報再設為顯示
foreach($_POST["dis"] as $d){
All("update post set display = 1 where id = '".$d."'");
}
// 刪除海報
foreach($_POST["del"] as $d){
All("delete from post where id = '".$d."'");
}
// 導回管理頁
lo("admin.php?redo=rr");
break;
//新增海報
case "npost":
// 獲取資料庫最後一筆排序數後+1
$seq = All("select seq from post order by seq desc limit 1")[0][0] +1;
// 新增資料
All("insert into post values (null, '".$fn."', '".$_POST["text"]."', 1, '".$seq."')");
// 獲取剛剛新增的id
$id = $pdo->lastInsertId();
// 上傳檔案
Upload($_FILES, "post", $id);
// 導回管理頁
lo("admin.php?redo=rr");
break;
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
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