图书管理系统 Axios 源码__新增图书

目录

功能介绍

核心代码解析

源码:新增图书功能

总结


本项目基于 HTML、Bootstrap、JavaScript 和 Axios 开发,实现了图书的增删改查功能。以下是新增图书的功能实现,适合前端开发学习和项目实践。


功能介绍

用户可以通过 模态框(Modal) 添加新图书,提交数据后,使用 Axios 发送 POST 请求 将数据存储到服务器,并实时更新图书列表。


核心代码解析

  • 控制模态框 :使用 bootstrap.Modal 控制新增图书窗口的显示与隐藏。
  • 收集表单数据 :利用 serialize 方法获取表单数据并转换为对象。
  • 发送 Axios POST 请求:提交书名、作者、出版社等信息到服务器。
  • 数据提交成功后处理
    • 刷新图书列表,显示最新数据;
    • 重置表单,清空输入框内容;
    • 关闭模态框,返回主界面。

源码:新增图书功能(index.js)

javascript 复制代码
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.serializeJSON/3.2.1/jquery.serializejson.min.js"></script>
    <script>
        // 目标:获取并渲染图书列表
        function getBookList() {
            axios({
                url: "http://hmajax.itheima.net/api/books",
                method: "get",
                params: { creator: "小宁" },
            }).then((result) => {
                const bookList = result.data.data;
                const htmlStr = bookList.map((item, index) => {
                    return `<tr>
                        <td>${index + 1}</td>
                        <td>${item.bookname}</td>
                        <td>${item.author}</td>
                        <td>${item.publisher}</td>
                        <td>
                            <span class="btn btn-danger btn-sm del">删除</span>
                            <span class="btn btn-warning btn-sm edit">编辑</span>
                        </td>
                    </tr>`;
                }).join("");
                document.querySelector(".list").innerHTML = htmlStr;
            });
        }

        // 页面加载时获取并渲染列表
        getBookList();

        // 新增图书功能
        const addModalDom = document.querySelector(".add-modal");
        const addModal = new bootstrap.Modal(addModalDom);
        
        document.querySelector(".save-btn").addEventListener("click", () => {
            const addForm = document.querySelector(".add-form");
            const bookData = $(addForm).serializeJSON(); // 序列化表单数据
            
            axios({
                url: "http://hmajax.itheima.net/api/books",
                method: "post",
                data: {
                    bookname: bookData.bookname,
                    author: bookData.author,
                    publisher: bookData.publisher,
                    creator: "小宁",
                },
            }).then(() => {
                getBookList(); // 重新渲染列表
                addForm.reset(); // 重置表单
                addModal.hide(); // 关闭模态框
            });
        });
    </script>

总结

1. 使用技术

  • HTML + Bootstrap:构建界面
  • JavaScript:处理交互
  • Axios:发送 AJAX 请求

2. 主要功能

  • 通过模态框(Modal)新增图书
  • 发送 POST 请求,将数据提交至服务器
  • 提交成功后,自动更新图书列表

3. 适用场景

  • 适用于 前端初学者项目开发者 ,可用于 学习 AJAX、Axios、Bootstrap 组件应用 等知识。
  • 可直接修改代码,扩展功能,如 删除、编辑、搜索 等。

本项目适合作为 图书管理系统前端示例 ,可用于学习 前后端交互 相关技术,有助于理解 前端数据请求和动态渲染 的基本原理。

相关推荐
小徐_2333几秒前
AI 写 wot-ui 总在猜 API?我们把 Skills、MCP 和 CLI 都配好了
前端·uni-app·ai编程
winfredzhang5 分钟前
用 wxPython + ECharts + 阿里矢量地图,做一个可离线兜底的上海雨量看板
前端·javascript·echarts
耀耀_很无聊12 分钟前
13_Spring Boot 3.5.8 + Redisson 3.45.1 导致 Sa-Token 登录 StackOverflowError
spring boot·后端·bootstrap
索西引擎17 分钟前
【React】Immer.js 在现代 Redux 生态中的角色:不可变性保障的工程化实现与开发体验优化
前端·javascript·react.js
kisshyshy19 分钟前
《川剧变脸 × React 状态管理?我在浏览器里跑了个端侧大模型》
前端·react.js·架构
只一20 分钟前
端侧AI实战第二章:React组件工程化 + 事件系统 + 可复用进度条(WebGPU模型加载底座)
前端·react.js
只一27 分钟前
拿捏大模型输出随机性:Temperature、Top-K 原理 + LangChain 工程落地实战
javascript·langchain
大卫陈29 分钟前
微信小程序虚拟支付实战:从「支付能力被限制」到沙箱调通的全过程
前端·后端
武子康29 分钟前
vLLM 0.25.1:服务没有报错,为什么仍会生成垃圾 Token(5 级正确性门禁 + 自动回滚条件)
前端·人工智能·后端
jyp2012110733 分钟前
Vue3 Diff 算法
前端·vue.js