前端(AJAX)學習筆記(CLASS 2):圖書管理案例以及圖片上傳

* BootStrap彈框

功能:不離開當前頁面,顯示單獨內容,供用戶操作

步驟:

1、引入bootstrap.css和bootstrap.js

2、準備彈框標簽,確認結構

3、通過自定義屬性,控制彈框的顯示和隱藏

其中的bootstrap.css鏈接為:

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">

bootstrap鏈接為:

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>

以下是模板代碼:

      <div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h1 class="modal-title fs-5" id="exampleModalLabel">Modal title</h1><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></div><div class="modal-body">...</div><div class="modal-footer"><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button><button type="button" class="btn btn-primary">Save changes</button></div></div></div></div>

利用自定義屬性控制彈框的顯示和隱藏

data-bs-toggle="modal"

data-bs-target="#exampleModal"

示例的按鈕:

<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal">Launch demo modal
</button>

如果使用js進行控制:

        //創建彈框對象const modal=new bootstrap.Modal('css選擇器')//顯示彈框modal.show()//隱藏彈框modal.hide()

1、渲染列表

自己的圖書數據:給自己起個外號,并告訴服務器,默認會有三本書,基于這三本書做數據的增刪改查

其中的圖書列表接口為:

http://ajax-api.itheima.net/api/books

首先基本的html與css代碼為以下:

    <!-- 操作列 --><div class="head"><h1 class="title">圖書管理</h1><button class="add_btn">添加</button></div>
    <!-- 圖書管理列表 --><table><thead><tr><th>序號</th><th>書名</th><th>作者</th><th>出版社</th><th>操作</th></th></thead><tbody><!-- <tr><th>1</th><th>《java程序設計》</th><th>xxx</th><th>高等教育出版社</th><th><span class="del">刪除</span><span class="edi">編輯</span></th></tr> --></tbody></table>

以下代碼為使用BooyStrap的添加圖書彈窗

    <!-- 添加圖書彈窗 --><div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h1 class="modal-title fs-5" id="exampleModalLabel">圖書管理</h1><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></div><div class="modal-body"><div>書名</div><input class="bookname" type="text" placeholder="請輸入書籍名稱"><div>作者</div><input class="author" type="text" placeholder="請輸入作者名稱"><div>出版社</div><input class="publisher" type="text" placeholder="請輸入出版社名稱"></div><div class="modal-footer"><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">取消</button><button type="button" class="btn btn-primary">確定</button></div></div></div></div>

下面為添加圖書的js部分:

        const tbody=document.querySelector('tbody')function getBook() {axios({url:'http://ajax-api.itheima.net/api/books'}).then(res => {console.log(res)tbody.innerHTML=res.data.data.map((item,index) =>`<tr><th>${index+1}</th><th>${item.bookname}</th><th>${item.author}</th><th>${item.publisher}</th><th class='${item.id}'><span class="del">刪除</span><span class="edi">編輯</span></th></tr>`)})}getBook()// 添加圖書操作//創建彈框對象const modal=new bootstrap.Modal('.modal')const add_btn=document.querySelector('.add_btn')        const bookDec=document.querySelectorAll('.modal-body input')//顯示彈框        add_btn.addEventListener('click',() => {for(let i=0;i<bookDec.length;i++){bookDec[i].value=null}modal.show() })// 添加圖書操作document.querySelector('.btn-primary').addEventListener('click',() =>{axios({url:'http://ajax-api.itheima.net/api/books',method:'post',data:{bookname: bookDec[0].value,author:bookDec[1].value,publisher:bookDec[2].value}}).then(res => {getBook()modal.hide()})})

2、刪除數據

當點擊刪除按鈕時,該行的數據將會被刪除,并在頁面中重新渲染

        // 刪除操作document.querySelector('tbody').addEventListener('click',e => {if(e.target.className==='del'){console.log(e.target.parentNode.className);const id=e.target.parentNode.classNameaxios({url:`http://ajax-api.itheima.net/api/books/${id}`,method:'delete'}).then(res => {getBook()})}})

3、修改數據

修改數據部分包括了數據回顯以及修改數據

當點擊編輯按鈕時,會彈出編輯圖書彈框

      <!-- 編輯圖書彈窗 --><div class="modal fade modal_edi" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h1 class="modal-title fs-5" id="exampleModalLabel">圖書管理</h1><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></div><div class="modal-body modal_body_edi"><div>書名</div><input class="bookname" type="text" placeholder="請輸入書籍名稱"><div>作者</div><input class="author" type="text" placeholder="請輸入作者名稱"><div>出版社</div><input class="publisher" type="text" placeholder="請輸入出版社名稱"></div><div class="modal-footer"><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">取消</button><button type="button" class="btn btn-primary edi_btn">修改</button></div></div></div></div>

再修改數據后,點擊修改按鈕,將進行修改

       // 點擊編輯,獲取圖書信息const modal_edi=new bootstrap.Modal('.modal_edi')const modal_body_edi=document.querySelectorAll('.modal_body_edi input')document.querySelector('tbody').addEventListener('click',e => {if(e.target.className==='edi'){modal_edi.show()console.log(e.target.parentNode.parentNode.children[0]);const id=e.target.parentNode.classNameaxios({url:`http://ajax-api.itheima.net/api/books/${id}`}).then(res => {console.log(res.data.data)modal_body_edi[0].value=res.data.data.booknamemodal_body_edi[1].value=res.data.data.authormodal_body_edi[2].value=res.data.data.publisher//點擊修改按鈕,對圖書信息進行修改document.querySelector('.edi_btn').addEventListener('click',() => {axios({url:`http://ajax-api.itheima.net/api/books/${id}`,method:'put',data:{bookname:modal_body_edi[0].value,author:modal_body_edi[1].value,publisher:modal_body_edi[2].value}}).then(edi_res =>{getBook()})modal_edi.hide()})}).catch(err => console.log(err))}})

* 圖片上傳

1、獲取圖片文件對象

2、使用FormData攜帶圖片文件

const fd=new FormData()
fd.append(參數名,值)

3、提交表單數據到服務器,使用圖片url網址

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896052.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896052.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896052.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據結構:雙鏈表list

list 是 C 標準庫中的雙向鏈表容器。 list初始化示例&#xff1a; #include <list>int n 7;std::list<int> lst; // 初始化一個空的雙向鏈表 lststd::list<int> lst(n); // 初始化一個大小為 n 的鏈表 lst&#xff0c;鏈表中的值默認都為 0std::list<i…

AI Agent Service Toolkit:一站式大模型智能體開發套件

項目簡介 該工具包基于LangGraph、FastAPI和Streamlit構建,提供了構建和運行大模型Agent的最小原子能力,包含LangGraph代理、FastAPI服務、用于與服務交互的客戶端以及一個使用客戶端提供聊天界面的Streamlit應用。用戶可以利用該工具包提供的模板快速搭建基于LangGraph框架…

論文概覽 |《Urban Analytics and City Science》2023.10 Vol.50 Issue.8

本次給大家整理的是《Environment and Planning B: Urban Analytics and City Science》雜志2023年10月第50卷第8期的論文的題目和摘要&#xff0c;一共包括21篇SCI論文&#xff01; 論文1 Advances in geospatial approaches to transport networks and sustainable mobility …

大語言模型推理能力從何而來?

前言 DeepSeek R1采用強化學習進行后訓練&#xff0c;通過獎勵機制和規則引導模型生成結構化思維鏈&#xff08;CoT&#xff09;&#xff0c;從而顯著提升了推理能力。這一創新方法使得DeepSeek R1能夠在無需大量監督數據的情況下&#xff0c;通過自我進化發展出強大的推理能力…

用 WOW.js 和 animate.css 實現動畫效果

用 wow.js 就可以實現動畫效果&#xff0c;但由于里面的動畫樣式太少&#xff0c;一般還會引入 animated.css 第一步&#xff1a;下載 選擇合適的包管理器下載對應的內容 pnpm i wow.js animated.css --save 第二步&#xff1a;引入 在main.js中加入&#xff1a; import …

設計模式教程:解釋器模式(Interpreter Pattern)

1. 什么是解釋器模式&#xff1f; 解釋器模式&#xff08;Interpreter Pattern&#xff09;是一種行為型設計模式&#xff0c;通常用于處理語言&#xff08;例如數學表達式、SQL查詢等&#xff09;中的語法和解釋。該模式定義了一個文法&#xff0c;并通過解釋器類來解釋文法中…

STM32MP157A單片機移植Linux驅動深入版

需求整理 在Linux設備樹中新增leds節點&#xff0c;其有3個gpio屬性&#xff0c;分別表示PE10對應led1&#xff0c;PF10對應led2&#xff0c;PE8對應led3&#xff0c;設備樹鍵值對如下&#xff1a; leds { led1-gpio <&gpioe 10 0>; led2-gpio &l…

本地DeepSeek模型GGUF文件轉換為PyTorch格式

接前文,我們在本地Windows系統上,基于GGUF文件部署了DeepSeek模型(DeepSeek-R1-Distill-Qwen-1.5B.gguf版本),但是GGUF是已經量化的版本,我們除了對其進行微調之外,無法對其訓練,那么還有沒有其他辦法對本地的GGUF部署的DeepSeek模型進行訓練呢?今天我們就反其道而行之…

http代理IP怎么實現?如何解決代理IP訪問不了問題?

HTTP代理是一種網絡服務&#xff0c;它充當客戶端和目標服務器之間的中介。當客戶端發送請求時&#xff0c;請求首先發送到代理服務器&#xff0c;然后由代理服務器轉發到目標服務器。同樣&#xff0c;目標服務器的響應也會先發送到代理服務器&#xff0c;再由代理服務器返回給…

人工智能之數學基礎:施密特正交化

本文重點 在前面的課程中,我們學習了線性空間的基,其中有一個標準正交基的概念,假設現在有一個線性向量空間,然后已經確定了該線性空間的一組基,那么如何將其轉變為標準正交基。本文將學習如何通過施密特正交化完成這個任務。 施密特正交化 施密特正交化(Schmidt Orth…

Spark(2)linux和簡單命令

&#xff08;一&#xff09;Linux的文件系統 文件系統&#xff1a;操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統。 文件系統的結構通常叫做目錄樹結構&#xff0c;從斜桿/根目錄開始; Linux號稱萬物皆文件&#xff0c;意味著針對Linux的操作&#xff0c;大多…

Grok 3.0 Beta 版大語言模型評測

2025年2月17日至18日&#xff0c;全球首富埃隆馬斯克&#xff08;Elon Musk&#xff09;攜手其人工智能公司xAI&#xff0c;在美國重磅發布了Grok 3.0 Beta版。這款被譽為“迄今為止世界上最智能的語言模型”的AI&#xff0c;不僅集成了先進的“DeepSearch”搜索功能&#xff0…

基于COSTAR模型的內容創作:如何用框架提升寫作質量

目錄 前言1. Context&#xff08;上下文&#xff09;&#xff1a;理解背景&#xff0c;奠定寫作基礎1.1 何為上下文1.2 上下文的作用1.3 案例解析 2. Objective&#xff08;目標&#xff09;&#xff1a;明確寫作方向&#xff0c;避免跑題2.1 確立目標2.2 如何設定目標2.3 案例…

Springboot應用開發工具類整理

目錄 一、編寫目的 二、映射工具類 2.1 依賴 2.2 代碼 三、日期格式 3.1 依賴 3.2 代碼 四、加密 4.1 代碼 五、Http請求 5.1 依賴 5.2 代碼 六、金額 6.1?代碼 七、二維碼 7.1 依賴 7.2 代碼 八、坐標轉換 8.1 代碼 九、樹結構 9.1?代碼 9.1.1 節點 …

【Research Proposal】基于提示詞方法的智能體工具調用研究——研究問題

博客主頁&#xff1a; [小????????] 本文專欄: AIGC | ChatGPT 文章目錄 &#x1f4af;前言&#x1f4af;研究問題1. 如何優化提示詞方法以提高智能體的工具調用能力&#xff1f;2. 如何解決提示詞方法在多模態任務中的挑戰&#xff1f;3. 如何通過提示詞優化智能體…

Java 大視界 -- 國際競爭與合作:Java 大數據在全球市場的機遇與挑戰(94)

&#x1f496;親愛的朋友們&#xff0c;熱烈歡迎來到 青云交的博客&#xff01;能與諸位在此相逢&#xff0c;我倍感榮幸。在這飛速更迭的時代&#xff0c;我們都渴望一方心靈凈土&#xff0c;而 我的博客 正是這樣溫暖的所在。這里為你呈上趣味與實用兼具的知識&#xff0c;也…

25旅游管理研究生復試面試問題匯總 旅游管理專業知識問題很全! 旅游管理復試全流程攻略 旅游管理考研復試真題匯總

旅游管理復試很難&#xff1f;&#xff01; 別怕&#xff01;經驗超豐富的老學姐來給你們出謀劃策啦&#xff01; 最近是不是被旅游管理考研復試折磨得夠嗆&#xff1f;莫慌&#xff01;我這有著豐富復試指導經驗的老學姐來幫你們排雷&#xff0c;助力大家順利上岸&#xff01…

美的樓宇科技基于阿里云 EMR Serverless Spark 構建 LakeHouse 湖倉數據平臺

作者&#xff1a;美的樓宇科技事業部 先行研究中心智能技術部 美的樓宇科技 IoT 數據平臺建設背景 美的樓宇科技事業部&#xff08;以下簡稱樓宇科技&#xff09;是美的集團旗下五大板塊之一&#xff0c;產品覆蓋多聯機組、大型冷水機組、單元機、機房空調、扶梯、直梯、貨梯…

Html5學習教程,從入門到精通,HTML5 元素語法知識點及案例代碼(2)

HTML5 元素語法知識點及案例代碼 一、HTML5 元素概述 HTML5 元素是構成網頁的基本單位&#xff0c;每個元素都有特定的語義和功能。HTML5 元素由開始標簽、內容和結束標簽組成&#xff0c;例如&#xff1a; <p>這是一個段落。</p><p> 是開始標簽這是一個段…

23種設計模式 - 備忘錄模式

模式定義 備忘錄模式&#xff08;Memento Pattern&#xff09;是一種行為型設計模式&#xff0c;其核心是在不破壞對象封裝性的前提下&#xff0c;捕獲并保存對象的內部狀態&#xff0c;以便后續恢復。該模式特別適用于需要實現撤銷/重做、狀態回滾等功能的系統&#xff0c;如…