form表单上传数据的几种方式

这篇具有很好参考价值的文章主要介绍了form表单上传数据的几种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

form 的基本使用

1、什么是表单

表单在网页中主要负责数据采集功能。HTML中的标签,就是用于采集用户输入的信息,并通过标签的提交操作,把用户收集到的信息发送到 Web 服务器进行处理。

form表单上传数据的几种方式

2、表单的组成部分
  1. 表单标签

就是我们常说的form表单,就是所谓的表单标签。

  1. 表单域

也就是表单标签之间的部分,这里面包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框、和文件上传框等.各种用于采集用户信息的标签。

这里面还可以包含一个特殊的部分,隐藏域:
隐藏域是用来收集或发送信息的不可见元素,对于网页的访问者来说,隐藏域是看不见的。当表单被提交时,隐藏域就会将信息用你设置时定义的名称和值发送到服务器上。
代码格式:<input type="hidden" name="..." value="...">

  1. 表单按钮

既然采集完用户对应输入的信息了,我还还需要将其提交到服务器,这时就需要借助提交按钮了。按钮的种类很多,如button、submit、reset,各自有各自的特点。

<!-- type=text  键值对,方式提交 -->
<!-- type=file  上传formData这种数据 -->
<form action="">
	<input type="text" name="username" />
	<input type="password" name="password">
	<input type="file" name="file" onchange="fileChange()" />
	<button type="submit">提交</button>
</form>
3、<form>标签的属性

<form>标签用来采集数据

<form>标签的属性则是用来规定如何把采集到的数据发送到服务器。

属性 描述
accept MIME_type HTML5 不支持。规定服务器接收到的文件的类型。(文件是通过文件上传提交的)
accept-charset character_set 规定服务器可处理的表单数据字符集。
action URL 规定当提交表单时向何处发送表单数据。
autocomplete(new) on
off
规定是否启用表单的自动完成功能。
enctype application/x-www-form-urlencoded
multipart/form-data
text/plain
规定在向服务器发送表单数据之前如何对其进行编码。(适用于 method=“post” 的情况)
method get
post
规定用于发送表单数据的 HTTP 方法。
name text 规定表单的名称。
novalidate(new) novalidate 如果使用该属性,则提交表单时不进行验证。
target _blank
_self
_parent
_top
规定在何处打开 action URL。

form表单上传数据(POST)

注意:
1、文件类型(word、excel、image/png、mp4)等文件都需要使用 formData格式上传文件至服务器
2、其他的数据内容基本是那个都是按照对象的形式传递的

1、直接传递对应的参数

实例代码基于jquery实现文章来源地址https://www.toymoban.com/news/detail-475815.html

$(function() {
	$('button').on('click', function(e) {
	    e.preventDefault();
	    $.ajax({
	        url: 'xxx',
	        type: 'POST',
	        //键值对的方式:
	        data: {
	            username: $('[name="username"]').val(),
	            password: $('[name="password"]').val()
	        },
	        success: (res) => {
	            console.log(res);
	        }
	    })
	})
});
2、formData上传数据(文本、文件、视频、图片等)
fileChange(){
	//选中文件后,会触发input=file的change事件,即会进入此函数
	// 1.先创建formData数据格式 传递HTML对象(文件上传推荐)
	var formData = new FormData()[0]);
	// 2.把传递给服务器数据,追加到formData对象里面
	// 第一种写法:一个个append
	formData.append('username', $('[name="username"]').val())
	formData.append('password', $('[name="password"]').val());
	//添加选择的文件 key值为file
	formData.append('file',$('[name="file"]')[0].files[0]); 
	
	// 第二种写法:遍历写法
	let obj = {
		username: $('[name="username"]').val(),
		password: $('[name="password"]').val(),
		file: $('[name="file"]')[0].files[0]
	}
	$.each(obj,function(key,value) {
	  formData.append(key,value)
	})
	
	//删除数据
	//formData.delete('username');
	//发送请求
	$.ajax({
	    url: 'xxx',
	    type: 'POST',
	    data: formData,
	    //如果提交数据格式为formData类型 必须加下面两句,不添加就报错
	    processData: false, //不希望使用   application/x-www-form-urlencoded
	    contentType: false, //不采用默认的数据类型 
	    //数据格式是 application/x-www-form-urlencoded
	    success: (res) => {
	        console.log(res);
	    },
	    error: function(err) {
	        console.log(err);
	    }
	})
}
3、form表单数据序列化(serialize将传递表单中的数据序列化)
//serialize form表单里面具有name属性的标签进行序列化, 序列化字符串
console.log($('form').serialize());
//输出:
username=admin&password=123123

//serializeArray form表单里面具有name属性的标签进行序列化, 序列化数组套object
console.log($('form').serializeArray());
//输出:
[ 
  {name: 'username', value: 'admin'}, 
  {name: 'password', value: '123123'},
]

console.log(serializeObject($('form'));
//输出:
{username:"admin",password:"123123"}
// 将表单中用户输入的内容转换为对象类型
// 封装一个方法: serializeObject()  ——返回对象
function serializeObject(obj) {
	var params = obj.serializeArray();
	// 使用each方法对params进行操作
	var result = {};
	// 循环数组,将数组转为对象类型
	$.each(params, function(index, value) {
	    result[value.name] = value.value;
	})
	return result;
}

$.ajax({
    url: 'xxx',
    type: 'POST',
    data: JSON.stringify(serializeObject($('form')),
    success: (res) => {
        console.log(res);
    },
    error: function(err) {
        console.log(err);
    }
})
            

到了这里,关于form表单上传数据的几种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • form表单提交数据的两种方式——submit直接提交、AJAX提交

    form表单本身提供action属性,在action属性中填写数据提交地址后,点击submit类型的按钮即可将数据提交至指定地址,代码如下: 注意: method指定请求方式 每个input表单项需要有name属性 通过上述方式提交表单数据后,会发生页面跳转,跳转至action所指定的地址,很难满足开发

    2024年02月13日
    浏览(31)
  • el-form与el-upload结合上传带附件的表单数据(前端篇)

    本文前端采用Vue + element-plus技术栈,前端项目参考yudao-ui-admin-vue3项目与 Geeker-Admin项目。 这篇文章是el-form与el-upload结合上传带附件的表单数据(后端篇)-CSDN博客姐妹篇,后端篇文章主要讲的是后端的实现逻辑,前端篇稍微简单一些,其实最主要的就是封装el-upload组件,供具

    2024年01月22日
    浏览(36)
  • 小程序表单校验uni-forms正确使用方式及避坑指南

    小程序上使用表单理应是很常用,也很必须的功能,因为系统实用了uni-app,所以这时候会用到uni-forms,但使用过程中遇到不少问题。 这边的需求有3个: 即时校验(输入框失焦立即校验值) 需自定义校验规则 需要异步校验 满足这3个需求,就能实现绝大部分表单校验,然而

    2024年01月18日
    浏览(40)
  • Unity——数据存储的几种方式

    PlayerPrefs适合用于 存储简单的键值对数据 存储的数据会在游戏关闭后依然保持,并且可以在不同场景之间共享,适合用于需要在游戏不同场景之间传递和保持的数据。 它利用key-value的方式将数据保存到本地,跟字典类似。然后通过代码进行保存、读取、更新操作。值得注意

    2024年02月03日
    浏览(33)
  • 前端 mock 数据的几种方式

    目录 接口demo Better-mock just mock koa webpack Charles 总结         具体需求开发前,后端往往只提供接口文档,对于前端,最简单的方式就是把想要的数据写死在代码里进行开发,但这样的坏处就是和后端联调前还需要再把写死的数据从代码里删除,最好的方式是无侵入的  m

    2024年02月17日
    浏览(37)
  • Baumer工业相机堡盟工业相机使用BGAPI SDK将图像数据转换为Bitmap的几种方式(C++)(Mono)

    Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩

    2024年02月03日
    浏览(53)
  • sql中删除数据的几种方式

    1、delete语句 Delete删除表数据,保留表结构,且可以加where,删除一行或多行。 只清除数据,保留表结构,列,权限,索引,视图,关系等等,相当于清零数据,是一种数据库定义语言(DDL Data Definition Language),执行后不能撤销。 清除数据并且销毁表,是一种数据库定义语言

    2024年02月11日
    浏览(34)
  • 35.MySQL导出数据的几种方式

    1.导出全表数据。 select * from test into outfile \\\'/tmp/a.sql\\\'; 2.导出某个数据库下的表。 --secure-file-priv=\\\'\\\'  mysqldump -T /data/backup -u root -prootroot --set-gtid-purged=OFF  test 将test数据库导出到:backup目录下。 3.导出自定义格式的文件。 mysql -uroot -prootroot -e \\\"select * from t2;\\\" test t2.sql  id    nam

    2024年02月04日
    浏览(34)
  • 数据大屏--->前端实时更新数据的几种方式

    优点:最大的优点就是实现简单 缺点:(1)无用的请求多,客户端不知道服务端什么时候数据更新,只能不停的向服务端发送请求, (2)数据实时性差:客户端还是需要一段时间(3s)才能拿到最新的数据 优点:解决了短轮询每隔几秒向服务端频繁发送请求的问题; 缺点:(1)服务端资源大量消

    2024年04月17日
    浏览(44)
  • Django传递数据给前端的几种方式

    一、使用模板引擎:         Django的模板引擎允许在后端代码中将数据传递给前端模板,并在模板中进行渲染。在视图函数中,可以使用 render 函数来将数据传递给模板并渲染页面。例如: 在 my_template.html 模板中可以通过 {{ name }} 和 {{ age }} 来访问传递的数据。例如: 二

    2024年01月18日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包