基於jQuery Ajax的圖書管理案例
阿新 • • 發佈:2022-04-07
用到的css庫:bootstrap.css
用到的JavaScript庫:jQuery.js
渲染圖書列表(核心程式碼):
刪除圖書(核心程式碼):
這裡用到事件代理
新增圖書(核心程式碼):
完整程式碼:(注意匯入相關庫檔案)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="./lib/bootstrap.css" /> <script src="./lib/jquery.js"></script> </head> <body style="padding: 15px;"> <!-- 新增圖書的Panel面板 --> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title">新增新圖書</h3> </div> <div class="panel-body form-inline"> <div class="input-group"> <div class="input-group-addon">書名</div> <input type="text" class="form-control" id="iptBookname" placeholder="請輸入書名"> </div> <div class="input-group"> <div class="input-group-addon">作者</div> <input type="text" class="form-control" id="iptAuthor" placeholder="請輸入作者"> </div> <div class="input-group"> <div class="input-group-addon">出版社</div> <input type="text" class="form-control" id="iptPublisher" placeholder="請輸入出版社"> </div> <button id="btnAdd" class="btn btn-primary">新增</button> </div> </div> <!-- 圖書的表格 --> <table class="table table-bordered table-hover"> <thead> <tr> <th>Id</th> <th>書名</th> <th>作者</th> <th>出版社</th> <th>操作</th> </tr> </thead> <tbody id="tb"></tbody> </table> <script> $(function () { // 獲取圖書列表資料 function getBookList() { $.get('http://www.liulongbin.top:3006/api/getbooks', function (res) { if (res.status !== 200) return alert('獲取資料失敗!') var rows = [] $.each(res.data, function (i, item) { rows.push('<tr><td>' + item.id + '</td><td>' + item.bookname + '</td><td>' + item.author + '</td><td>' + item.publisher + '</td><td><a href="javascript:;" class="del" data-id="' + item.id + '">刪除</a></td></tr>') }) $('#tb').empty().append(rows.join('')) }) } getBookList() /* $('.del').on('click', function () { console.log('ok') }) */ // 通過代理的方式為動態新增的元素繫結點選事件 $('tbody').on('click', '.del', function () { var id = $(this).attr('data-id') $.get('http://www.liulongbin.top:3006/api/delbook', { id: id }, function(res) { if (res.status !== 200) return alert('刪除圖書失敗!') getBookList() }) }) $('#btnAdd').on('click', function () { var bookname = $('#iptBookname').val().trim() var author = $('#iptAuthor').val().trim() var publisher = $('#iptPublisher').val().trim() if (bookname.length <= 0 || author.length <= 0 || publisher.length <= 0) { return alert('請填寫完整的圖書資訊!') } $.post('http://www.liulongbin.top:3006/api/addbook', { bookname: bookname, author: author, publisher: publisher }, function (res) { if (res.status !== 201) return alert('新增圖書失敗!') getBookList() $('#iptBookname').val('') $('#iptAuthor').val('') $('#iptPublisher').val('') }) }) }) </script> </body> </html>