Toggle main menu visibility
下載輕鬆架
套件下載
使用手冊
發問討論
網站地圖
:::
登入
登入
帳號
密碼
登入
:::
所有書籍
「Laravel 5.6 入門講義」目錄
MarkDown
15-1 刪除測驗
1. 關於 Laravel
1-1 為何需要框架?
1-2 快速安裝開發環境及開發工具
1-2-1 以XAMPP建立運作環境
1-2-2 Visual Studio Code文字編輯器
1-2-3 安裝 Composer
1-2-4 安裝 GitHub Desktop for Windows
1-2-5 [建議]瀏覽器附加元件
1-2-6 [參考]申請mailtrap帳號
1-2-7 [參考]用Homestead建構開發環境
2. 建立專案
2-1 將專案加入本地端的 git
2-2 將專案放上GitHub
2-3 設定專案環境
2-4 Laravel運作週期
3. 建立使用者認證
3-1 佈署到主機上
3-2 新增語系
3-3 開啟網站並登入
4. 了解路由的運作
4-1 製作系統主樣板
4-2 製作中文語系檔
4-3 修改首頁畫面
4-4 Blade 樣板語法
5. 安裝後台及讀寫機制
5-1 安裝後台的使用者角色管理
5-2 讓閒雜人等不能進入後台
5-3 安裝 laravel-debugbar 方便除錯
6. 建立相關資料表及模型
6-1 編輯並執行測驗(exam)的 migrate 檔案
7. 開始定義系統各項功能
7-1 還沒有控制器的路由寫法
7-2 有控制器的路由寫法
8. 建立新增測驗的操作界面
8-1 安裝marvinlabs/laravel-html-bootstrap-4套件
8-2 建立發布測驗的表單
9. 建立Exam的控制器controller
9-1 修改路由改用控制器
9-2 在視圖中取得使用者編號
9-3 將資料寫進資料庫
9-4 用 fillable 批量賦值寫入
10. 表單驗證及錯誤處理
10-1 建立Request來統一驗證
11. 讀出所有測驗
11-1 讀出時加入各種條件
11-2 加入分頁
12. 讀出單一測驗
12-1 路由模型綁定
12-2 建立並執行題目的Model 及 migrate 文件
12-3 新增題目編輯表單
12-4 儲存題目
12-5 列出題目
12-6 匯入題目
12-7 利用Model查詢資料的方法
12-8 測驗與題目的關聯
13. 利用模型工廠產生隨機題目
13-1 建立Seeder快速填充資料
14. 修改測驗
14-1 更新測驗
14-2 修改題目
14-3 更新題目
15. 刪除題目
15-1 刪除測驗
15-2 加入刪除確認
16. 建立並執行考試的Model 及 migrate 文件
16-1 設定考試與測驗、考生的關聯
16-2 產生考試界面
16-3 儲存並計分
16-4 產生考試結果
17. 安裝設定新北市OpenID登入
17-1 使用新北市OpenID登入
17-2 異動資料表
17-3 修改考試的儲存動作
18. 網站的關閉與啟動
18-1 使用路由前置字串
18-2 使用資源路由
19. 重建由GitHub下載的Laravel專案
16. 建立並執行考試的Model 及 migrate 文件
Laravel 5.6 入門講義 ================ ### 一、載入SweetAlert2 1. 直接刪除實在太可怕,一個不小心就會把所有資料刪掉,因此,在刪除之前加個確認動作會比較好一點 2. 開啟`\專案\resources\views\layouts\app.blade.php`主視圖,引入js以及子視圖,並新增一個 `@yield` 命令,已方便各個子視圖放置一些各自的 javascript 語法: ```markup
{{ config('app.name', 'Laravel') }}
@yield('js') ``` ### 二、題目的確認後刪除 1. 開啟`\專案\resources\views\layouts\show.blade.php`子視圖,先把刪除題目的按鈕簡化為一般的按鈕,在class中,我們加入`btn-del-topic`好讓jquery可以偵測刪除題目的按鈕是否有被按下,並利用`data-id`來紀錄題目編號,等一下刪除時會用到。 ```markup
@can('建立測驗')
刪除
編輯
({{$topic->ans}}) @endcan {{ bs()->badge()->text($key+1) }} {{ $topic->topic }}
``` 2. 接著在同一個檔案下方,利用`@section('js')`加入 sweetalert2 語法,語法可參考
: ```markup @section('js') @endsection ``` - 利用 `$('.btn-del-topic').click()`來偵測該刪除按鈕被按下的事件。 - 利用jquery的`data()`函數取的`data-id`的值,這樣才知道要刪除哪一篇 - 若使用者有按確定刪除,我們就利用axios以ajax的方式來執行HTTP的刪除動作,關於axios的使用可參考:
- 刪除後,會執行`location.reload();`以更新畫面 3. 由於刪除已經改成用ajax的方式來執行,因此,我們修改題目的控制器`\專案\app\Http\Controllers\TopicController.php`,把刪除的部份再簡化(無須轉向),到此,題目的確認後刪除就大公告成了! ```php public function destroy(Topic $topic) { $topic->delete(); } ``` ### 三、測驗的確認後刪除 1. 一樣開啟`\專案\resources\views\layouts\show.blade.php`子視圖,先把測驗的刪除按鈕簡化為一般的按鈕,在class中,我們加入`btn-del-exam`好讓jquery可以偵測測驗的刪除按鈕是否有被按下,並利用`data-id`來紀錄測驗編號。 ```markup
{{$exam->title}} @can('建立測驗')
刪除
編輯
@endcan
``` 2. 接著在`@section('js')`裡面再加上測驗刪除的事件,複製上方得來修改即可。 ```javascript // 刪除按鈕點擊事件 $('.btn-del-exam').click(function() { // 獲取按鈕上 data-id 屬性的值,也就是編號 var id = $(this).data('id'); // 調用 sweetalert swal({ title: "確定要刪除測驗嗎?", text: "刪除後該測驗連同所有題目就消失救不回來囉!", type: 'warning', showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "是!含淚刪除!", cancelButtonText: "不...別刪", }).then((result) => { if (result.value) { swal("OK!刪掉測驗惹!", "該測驗所有資料已經隨風而逝了...", "success"); // 調用刪除介面,用 id 來拼接出請求的 url axios.delete('/exam/' + id).then(function () { location.href='/exam'; }); } }); }); ``` - 利用 `$('.btn-del-exam').click()`來偵測測驗刪除按鈕被按下的事件。 - 利用jquery的`data()`函數取的`data-id`的值,這樣才知道要刪除哪一篇測驗 - 刪除後,會執行`location.href`做轉向。 3. 接著修改題目的控制器`\專案\app\Http\Controllers\ExamController.php`,一樣把刪除的部份再簡化即可! ```php public function destroy(Exam $exam) { $exam->delete(); } ``` [![到GitHub觀看此單元程式異動](https://campus-xoops.tn.edu.tw/uploads/tad_book3/image/34/to_github.png)](https://github.com/tad0616/exam56/commit/723202dcaf5121caa9700297afdf55fb7ae5251f)