表单中input name属性有无[]的区别

1 input数组

如下一个表单:

<input type="text" name="username[]" value="Jason" />
<input type="text" name="username[]" value="Tom" />
<input type="text" name="username[]" value="Goe" />

我们在name属性值后面加一个中括号[]后台获取数据的时候,就能拿到一个数组$_POST[‘username‘] = [‘Jason‘, ‘Tom‘, ‘Goe‘]

改用GET方式再提交,可以看到数据格式是这样的:

username%5B%5D=Jason&username%5B%5D=Tom&username%5B%5D=Goe

其中,%5B%5D就是中括号[],代表数组。

2 非input数组

另一种容易混淆的提交方式,就是name后面没有中括号[]

<input type="text" name="username" value="Jason" />
<input type="text" name="username" value="Tom" />
<input type="text" name="username" value="Goe" />

这种情况提交后,后台拿不到一个数组,而是最后那个标签的值,也就是$_POST[‘username‘] = ‘Goe‘

GET方式提交看到数据格式如下:

username=Jason&username=Tom&username=Goe

这种方式三个username后面没有带[]

3 非input数组方式提交成数组

上面两种提交方式中,直接点提交按钮提交,和用jQuery$(‘form‘).serializ()序列化提交,得到的结果都是一样的。

[]后台得到数组,不加[]得到最后标签的值。

如果第二种也要提交成数组,那怎么办呢?

办法就是,在提交之前用jQuery处理:

$(‘form‘).on(‘submit‘,function(e) {
    e.preventDefault();

    var data = $("input[name=‘username‘]").map(function () {
     return $(this).val();
     }).get();

    $.post(‘save.php‘, {username: data}, function(r){
        $(‘p‘).html(r);
    });
});

这种方式稍显啰嗦。

如果不需要提交之前不需处理数据,直接用第一种方式最为方便。

原文地址:https://www.cnblogs.com/qq254980080/p/9608774.html

时间: 2024-11-08 23:14:56

表单中input name属性有无[]的区别的相关文章

form表单中method的get和post区别

一.问题的提出   <form action="getPostServlet/getPost.do?param4=param4" method="get">     <input type="hidden" name="param1" value="param1">     <input type="hidden" name="param2&quo

jsp页面的表单中submit和button的使用区别

今天在做增删改查时,使用了Javascrip语言,添加和修改完成以后,在做删除时,需要用form表单来获取. 问题来了,添加了form之后,添加和修改功能不好使了. 下面是我JSP页面中的按钮代码 类型type中应为button,不是submit.(一个form表单中可以有多个button按钮,却只能有一个submit按钮) submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了.如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须

PHP 表单中的enctype属性

连接地址:http://blog.csdn.net/freshlover/article/details/8603648 1:表单中有上传要用multipart/form-data 2:一般不用text/plain",有空能$_post[]可能取不到值

servlet表单中get和post方法的区别

Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法.二者主要区别如下: 1.Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据. 2.Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接:Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL. 3.Get是不安全的,因为在传输过程,数据被

form 表单中input 使用disable属性

记录一下今天踩得坑. 在使用form表单提交的时候,input用了disable属性,在查找了好久之后,找到原因,万万没想到是因为disable. 修改方法:disable改为readonly disable:1.不能接受焦点 2.使用tab键的时候将被跳过 3.可能不是successful readonly:1.可以接收焦点,但不能被修改 2.可以使用tab键进行导航 3.可能是successful的 只有successful的表单元素才是有效数据,即是进行提交后可以获取值.disabled和

form表单中的encType属性

enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码,它有三个值 1.application/x-www-form-urlencoded:表单数据被编码为名称/值对.这是默认的编码方式(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值).使用get方式提交时,把表单数据(name1=value1&name2=value2...)以键值对append到url后,用  '?' 分割url和参数.使用post方式提交时,把表单数据以键值对放在请求体中传

html表单中get与post之间的区别

当用户在 HTML 表单 (HTML Form) 中输入信息并提交之后,有两种方法将信息从浏览器传送到 Web 服务器 (Web Server). 一种方法是通过 URL,另外一种是在 HTTP Request 的 body 中. 前一种方法,我们使用 HTML Form 中的 method = "get",后一种方法我们使用 HTML Form 中的 method ="post". 例句如下: <form action = "..." m

表单中input的type用法详解

1.type=text. 输入类型是text,这是我们见的最多也是使用最多的, 比如登陆输入用户名,注册输入电话号码,电子邮件, 家庭住址等等.当然这也是Input的默认类型. 参数name:同样是表示的该文本输入框名称. 参数size:输入框的长度大小. 参数maxlength:输入框中允许输入字符的最大数. 参数value:输入框中的默认值. 特殊参数readonly:表示该框中只能显示,不能添加修改. 1 <form> 2 your name:input type="text&

让 IE 8 及以下浏览器支持 表单 input [placeholder] 属性

在我们的日常开发中,时常会遇到要求兼容 ie低版本 的项目,其中表单多的项目,其中 用到 placeholder 属性几乎是必不可少的. placeholder是一个很实用的Html 5属性.但是该属性在低版本的IE下是无效的. 于是在网上找了很多方法,就以下方法,比较简单方便. 首先新建一个js文件,把下方代码,放到一个JS文件里面,页面直接引入即可. //解决ie下 input 的placeholder不显示问题 var JPlaceHolder = { //检测 _check: funct