ajax day2

news2024/11/25 11:02:27

1、请添加图片描述
2、控制弹框显示和隐藏:
请添加图片描述
3、右键tr,编辑为html,可直接复制tr部分的代码
在这里插入图片描述

在这里插入图片描述

4、删除时,点击删除按钮,可以获取图书id:
在这里插入图片描述

在这里插入图片描述
5、编辑图书
快速赋值表单元素内容,用于回显:
在这里插入图片描述
6、hidden
在这里插入图片描述

7、案例 个人信息设置
在这里插入图片描述
js代码部分:

/**
 * 目标1:信息渲染
 *  1.1 获取用户的数据
 *  1.2 回显数据到标签上
 * */
// 1
const creator = '播仔'
axios({
  url: 'http://hmajax.itheima.net/api/settings',
  params: {
    // 对象中 es6简写 属性名和变量名相同
    creator
  }
}).then(result => {
  // console.log(result)
  // 播仔相关信息对象
  obj = result.data.data
  // item为字符串形式
  Object.keys(obj).forEach(item => {
    //avatar 存头像路径
    // console.log(item)
    if (item == 'avatar') {
      document.querySelector('.prew').src = obj[item]
      // 性别
    } else if (item === 'gender') {
      // genderList为一个伪数组 0男,1女
      const genderList = document.querySelectorAll('.gender')
      const num = obj[item]
      // 勾选上此单选框
      genderList[num].checked = true
    } else {
      document.querySelector(`.${item}`).value = obj[item]
    }
  })

})
// 2
// file的change事件 更换图片
document.querySelector('.upload').addEventListener('change', e => {
  // e.target.files得fileList对象
  // 只选中一张图片 故e.target.files[0]为一个file对象
  const fd = new FormData()
  fd.append('avatar', e.target.files[0])
  fd.append('creator', creator)
  // 提交到服务器上
  axios({
    url: 'http://hmajax.itheima.net/api/avatar',
    method: 'PUT',
    data: fd
  }).then(result => {
    console.log(result)
    //更新头像路径 result.data.data.avatar为图片在服务器中的路径
    document.querySelector('.prew').src = result.data.data.avatar
  })
})
// 3
document.querySelector('.submit').addEventListener('click', () => {
  const formData = document.querySelector('.user-form')
  const userObj = serialize(formData, { hash: true, empty: true })
  // console.log(userObj)
  // 字符串转数字类型
  userObj.gender = + userObj.gender
  userObj.creator = creator
  // 将修改的个人信息提交到服务器
  axios({
    url: 'http://hmajax.itheima.net/api/settings',
    method: 'PUT',
    data: userObj
  }).then(result => {
    // console.log(result)
    // 修改信息成功 显示提示框
    const toastDom = document.querySelector('.my-toast')
    // 创建提示框对象 构造函数 new实例化
    const toast = new bootstrap.Toast(toastDom)
    toast.show()
  })
})
// // // 1.1 获取用户的数据
// axios({
//   url: 'http://hmajax.itheima.net/api/settings',
//   params: {
//     creator
//   }
// }).then(result => {
//   const userObj = result.data.data
//   // 1.2 回显数据到标签上
//   Object.keys(userObj).forEach(key => {
//     if (key === 'avatar') {
//       // 赋予默认头像
//       document.querySelector('.prew').src = userObj[key]
//     } else if (key === 'gender') {
//       // 赋予默认性别
//       // 获取性别单选框:[男radio元素,女radio元素]
//       const gRadioList = document.querySelectorAll('.gender')
//       // 获取性别数字:0男,1女
//       const gNum = userObj[key]
//       // 通过性别数字,作为下标,找到对应性别单选框,设置选中状态
//       gRadioList[gNum].checked = true
//     } else {
//       // 赋予默认内容
//       document.querySelector(`.${key}`).value = userObj[key]
//     }
//   })
// })

// /**
//  * 目标2:修改头像
//  *  2.1 获取头像文件
//  *  2.2 提交服务器并更新头像
//  * */
// // 文件选择元素->change事件
// document.querySelector('.upload').addEventListener('change', e => {
//   // 2.1 获取头像文件
//   console.log(e.target.files[0])
//   const fd = new FormData()
//   fd.append('avatar', e.target.files[0])
//   fd.append('creator', creator)
//   // 2.2 提交服务器并更新头像
//   axios({
//     url: 'http://hmajax.itheima.net/api/avatar',
//     method: 'PUT',
//     data: fd
//   }).then(result => {
//     const imgUrl = result.data.data.avatar
//     // 把新的头像回显到页面上
//     document.querySelector('.prew').src = imgUrl
//   })
// })

// /**
//  * 目标3:提交表单
//  *  3.1 收集表单信息
//  *  3.2 提交到服务器保存
//  */
// /**
//  * 目标4:结果提示
//  *  4.1 创建toast对象
//  *  4.2 调用show方法->显示提示框
//  */
// 保存修改->点击
// document.querySelector('.submit').addEventListener('click', () => {
//   // 3.1 收集表单信息
//   const userForm = document.querySelector('.user-form')
//   const userObj = serialize(userForm, { hash: true, empty: true })
//   console.log(userObj)
//   userObj.creator = creator
//   // 性别数字字符串,转成数字类型
//   userObj.gender = +userObj.gender
//   console.log(userObj)
//   // 3.2 提交到服务器保存
//   axios({
//     url: 'http://hmajax.itheima.net/api/settings',
//     method: 'PUT',
//     data: userObj
//   }).then(result => {
//     // 4.1 创建toast对象
//     const toastDom = document.querySelector('.my-toast')
//     const toast = new bootstrap.Toast(toastDom)

//     // 4.2 调用show方法->显示提示框
//     toast.show()
//   })
// })

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/973795.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python开发之个微机器人的二次开发

简要描述: 取消消息接收 请求URL: http://域名地址/cancelHttpCallbackUrl 请求方式: POST 请求头Headers: Content-Type:application/json 参数: 参数名类型说明codestring1000成功,1…

MySql学习笔记12——数据库设计三范式

数据库设计三范式 第一范式:要求任何一张表必须有主键,每一个字段原子性不可再分。 第二范式:建立在第一范式之上,要求所有非主键字段必须完全依赖主键,不能部分依赖 第三范式:建立在第二范式之上&#…

分享2款微课录制软件,保证让你满意!

“录微课用什么软件呀,真的服了,平台自带的录屏画质太差了,完全看不清讲的内容,而且音质也不是很好,大家有没有微课录制的软件推荐,谢谢啦” 随着教育方式的转型和技术的发展,微课程成为了一种…

虚拟机(三)VMware Workstation 桥接模式下无法上网

目录 一、背景二、解决方式方式一:关闭防火墙方式二:查看桥接模式下的物理网卡是否对应正确方式三:查看物理主机的网络属性 一、背景 今天在使用 VMware Workstation 里面安装的 Windows 虚拟机的时候,发现虽然在 NAT 模式下可以…

2023年9月NPDP产品经理国际认证报名,当然弘博创新

产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…

C#,数值计算——NRf1(UniVarRealValueFun)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class NRf1 : UniVarRealValueFun { public RealValueFun y1; public RealValueFun y2; public NRf2 f2; public NRf1(RealValueFun y1, RealValueFun y2, RealValueFun z1,…

IMAU鸿蒙北向开发-2023年9月4日学习日志

1 HarmonyOS 1.1 南向设备开发与北向应用开发 上北下南,上层应用开发叫北向,底层设备开发叫南向。 北向:指的纯应用软件开发,基于官方提供的系统SDK进行应用开发,HarmonyOS 目前支持使用java、js、 ets、c、c进行开发…

丢失msvcp110.dll是什么意思?msvcp110.dll丢失的解决方法

当您在使用电脑时,可能会遇到这样的提示:“由于缺少msvcp110.dll文件,无法启动此程序。”那么,丢失msvcp110.dll到底是什么意思呢?又该如何解决这个问题呢?接下来,我将为您详细解答。 丢失msvcp…

笔记本家庭版本win11上win+r,运行cmd默认没有管理员权限,如何调整为有管理员权限的

华为matebookeGo 笔记本之前有段时间不知怎么回事,打开运行框,没有了那一行“使用管理权限创建此任务”,而且cmd也不再是默认的管理员下的,这很不方便,虽然每次winr ,输入cmd后可以按ctrlshitenter以管理员权限运行&am…

八路DI八路DO,开关量远程IO模块,Modbus TCP数据采集模块 YL90-RJ45

特点: ● 八路开关量输入,八路开关量输出 ● DI状态变化自动发送状态数据,可以捕获脉冲 ● 采用Socket自由协议编程简单、轻松应用 ● 开关量毫秒级响应速度适应多种场合 ● 内置网页功能,可以通过网页查询与控制 ● 同时也…

微型计算机原理知识点总结(一)

目录 一.微型计算机 二.微型计算机系统 1.微型计算机硬件系统 冯诺依曼体系结构 总线 (1)微处理器(CPU) 运算器 控制器 内部寄存器 (2)存储器 1.基本概念 2.内存的操作 3.内存的分类 (3)I/O接口与输入/输出设备 2.微型计算机软件系统 (1)系统软件 操作系统 …

SpringBoot实现发送邮件功能

平时注册或者登录一个网站时,可能收到过邮件用来发送验证码等,邮件在项目中经常会被用到,比如邮件发送通知,比如通过邮件注册,认证,找回密码,系统报警通知,报表信息等。 发送邮件用…

第一次做接口测试用例

一、简介 在开始接口测试之前,我们想一下,接口测试的流程是什么?说到这里,有些人就会产生好奇和疑问,心里mmp:接口测试要什么流程哈???不就是参考接口文档,直…

金蝶云星空对接打通赛意SMOM委外退料单接口与保存ASN数据接口

金蝶云星空对接打通赛意SMOM委外退料单接口与保存ASN数据接口 对接源平台:金蝶云星空 金蝶K/3Cloud(金蝶云星空)是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”&#xff…

数据结构(一)Trie字符串统计

目录 代码 (一)输入cat son[p][u],p表示儿子,u表示第几个儿子 0的根的节点编号为idx -------------------------------------------------------- 根是0的有个儿子c,编号为1的节点有个子节点为a,a的编号是2&#xf…

SegNeXt学习记录(一):配置环境 测试代码

安装配置MMSegmentation环境 为了验证 MMSegmentation 和所需的环境是否安装正确,我们可以运行示例 python 代码来初始化分段器并推断演示图像: from mmseg.apis import inference_segmentor, init_segmentor import mmcvconfig_file configs/pspnet/…

一辆新能源汽车的诞生之旅:比亚迪常州工厂探营

作为在新能源汽车领域首屈一指的国产品牌,比亚迪近年来可以说是捷报频传,高奏凯歌。 以比亚迪常州工厂为例,据介绍该工厂当初规划设计时定下的生产目标,是年产量能够达到20万辆。然而在2023年上半年,该工厂光是主要销往…

美元的吸血鬼攻击

今日荐读:9.3教链内参《摩根大通认为SEC将被迫批准现货ETF》。刘教链Pro《为什么我写了PGP》。 * * * 刘教链 原创 * * * 自2022年3月16日美联储议息会议后决定开始加息25bp以来,今天(2023.9.4)已经是本轮加息周期的第537天。在…

网络编程面试题

计算机网络体系结构 在计算机网络的基本概念中,分层次的体系结构是最基本的。计算机网络体系结构的抽象概念较多,在学习时要多思考。这些概念对后面的学习很有帮助。 网络协议是什么? 在计算机网络要做到有条不紊地交换数据,就…

全栈监控,可视化整个堆栈

IT 管理员能够监## 标题控终端设备已有一段时间了,但随着现代基础架构和向混合云架构的转型,端到端可见性至关重要,混合云环境的行为可能不可预测,因此传统技术通常是不够的。传统基础结构监视方法的最大缺点是缺乏对环境特定部分…