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);
});
});

这种方式稍显啰嗦。

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

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

  1. angular4 form 表单中 input输入框的disabled属性

    直接加[disabled]="isDisabled"属性的话,出现报错 根据提示,做如下修改 private isEdit: boolean = true; private isD ...

  2. form表单中的id 与name的区别

    以前经常写form表单时,不写id和name,总觉得没有什么用.后来一看后台套完的页面发现,他们都补上name,不知道所以然,就查了一下资料,吓我一跳,要是照我那样写根本不会有数据传到服务器.原来表单 ...

  3. form表单中的enctype 属性以及post请求里Content-Type方式

    对于form表单中的enctype 属性之前理解的一般,就知道是类似于一种编码形式.后来公司做一个form表单提交数据的时候,重点是这个form表单里有文件上传,而我又要用vue来模拟form表单提交 ...

  4. angular2+ form 表单中 input输入框的disabled属性设置无效

    最近项目中遇到一个表单input设置disabled问题,直接赋值angular原生的[disabled]=“isDisabled”无效,浏览器警告信息: 无奈,只能按照控制台提示修改: 问题解决

  5. form表单中method的get和post区别

    一.问题的提出   <form action="getPostServlet/getPost.do?param4=param4" method="get" ...

  6. Form表单中Post与Get方法的区别

    Form提供了两种数据传输的方式:get和post.虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响. Form中的get和post方法,在数据传输过程中分别 ...

  7. 表单中submit和button按钮的区别!

    对于表单的按钮以前知道submit和button有区别,但没有深入探索,今天刚好又碰到这个问题,看了下网络上这位朋友已经有现成的总结了,而且比较到位,拿来跟大家分享下(原文地址:http://blog ...

  8. Form表单中的get和post的区别

    method="get/post",两种方式的区别 Form中的get和post方法,在数据传输过程中分别对应了GET和POST方法.二者主要区别如下: 1.Get将表单中数据的按 ...

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

    Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法.二者主要区别如下: 1.Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据. 2.Ge ...

随机推荐

  1. MySQL 主主配置

    一.准备 1.两个数据库版本最好保持一致(因为官方就是这么建议的,主要的问题就是考虑到兼容性问题) 2.连个数据库的数据保持一致,若不一致,可手动调整,比如A比B多一个库,那就将这个库导入到B库,达到 ...

  2. ind2sub

    ind2sub 线性索引的下标 语法 [I,J] = ind2sub(siz,IND)[I1,I2,I3,...,In] = ind2sub(siz,IND)   说明 ind2sub 函数确定与数组 ...

  3. 环境部署(六):Git关联github

    我们使用Git进行版本管理,前面的博客也介绍了Linux下安装Git以及Git基础教程,这篇博客,简单介绍下如何使用Git关联github... 更多关于Git的内容,可参考下列内容: Git官方文档 ...

  4. Mac环境 安装brew

    一.brew官网主页上的方法: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta ...

  5. 对称与非对称加密;SSL;HTTPS;AJP

    1.对称加密就是加密与解密的时候都是用一个密码 2.非对称加密,有一对密码A,B:用A加密就得用B解密,相对的用B加密就得用A解密 3.公钥与私钥,这一对密码,随便拿一个公布出去,那个就是公钥,剩下一 ...

  6. VBS弹出来的对话框如何置顶!--果然技巧

    msgbox 第二参数+4096 mshta vbscript:msgbox("提示内容6",6,"提示窗口6")(window.close)

  7. python程序爬虫总是崩溃

    写的一个爬虫程序,主要用到以下库.但是伴随着代码增多,功能增多.经常性的程序崩溃现象,逐渐显现. pyqt5_5.8.2,requests.get,selenium+chorme,threading. ...

  8. 自建 Gitlab (邮箱配置、拆分 PostgreSQL、Redis) + 随想

    前言 最近折腾了一番自建 gitlab,在此做个记录,供君参考.整个构建过程基于 Docker Swarm(近期有计划将微服务移植到 Kubernetes,但还没倒腾顺手,暂时先沿用旧的方案),主题配 ...

  9. 04 Docker/基础设施 - DevOps之路

    04 Docker/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi Docker是一个开源的引擎,可 ...

  10. .net之httphandler小记

    本地调试代码遇到的一个问题,没有走URL路由器(UrlReWriter : IHttpHandlerFactory),于是网上科普了一下原理,主要有两点: 1.asp.net在处理http请求时,会由 ...