HTML 表单:POST 对象数组

2024-05-08

提交班级名单。一次添加3名学生。每个学生都有最初、最后的年龄。

问题:我们如何才能将所有学生放入数组中?

students[0] => Array (
  ["first"] => "first name for 0",
  ["last"] => "last name for 0",
  ["age"] => "age for 0"
),
students[1] => Array (
  ["first"] => "first name for 1",
  ["last"] => "last name for 1",
  ["age"] => "age for 1"
), 
...  

Details
对于一名学生:

<input type="text" name="first">  
<input type="text" name="last">  
<input type="text" name="age">  

我们可以在单独的数组中返回多个学生,如下所示:

<input type="text" name="students[first][]">  
<input type="text" name="students[last][]">  
<input type="text" name="students[age][]">  

它返回一个包含第一个、最后一个和年龄的数组

students["first"] = [array of first names]
students["last"] = [array of last names]
students["age"] = [array of ages]  

理论上,我们可以通过访问相同的索引(每个数组为“3”)来获取学生的所有信息。

我们不想以编程方式在表单中添加索引。
不要:

<input type="text" name="students[hardcoded_index][first]">  
<input type="text" name="students[hardcoded_index][last]">  
<input type="text" name="students[hardcoded_index][age]">  

如果出于某种原因,我们可以使用 Rails 来查看视图,但也可以使用表单助手或 HTML。


tl;dr: 添加空括号 ([]) after students到输入名称。

摆弄机架::Utils.parse_nested_query http://www.rubydoc.info/gems/rack/Rack/Utils.parse_nested_query看来你可以像这样获得你想要的有效负载:

<!-- first student -->
<input type="text" name="students[][first]">
<input type="text" name="students[][last]">
<input type="text" name="students[][age]">

<!-- second student -->
<input type="text" name="students[][first]">
<input type="text" name="students[][last]">
<input type="text" name="students[][age]">

注意空括号([]) after students.这告诉 Rack 你想要studentsparam 是一个数组。遇到的后续参数(具有相同名称)将启动一个新元素。

POST /myroute?students[][first]=foo&students[][last]=bar&students[][age]=21&students[][first]=baz&students[][last]=qux&students[][age]=19

像这样解析:

{"students" => [
  {
    "first" => "foo",
     "last" => "bar",
      "age" => "21"
  },
  {
    "first" => "baz",
     "last" => "qux",
      "age" => "19"
  }
]}

进一步阅读:http://codefol.io/posts/How-Does-Rack-Parse-Query-Params-With-parse-nested-query http://codefol.io/posts/How-Does-Rack-Parse-Query-Params-With-parse-nested-query

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML 表单:POST 对象数组 的相关文章

  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • 设置 runat=server 时输入名称和 id 发生变化

    在我的表单中 我需要插入 文本 类型的不同输入 输入必须是带有名称和 ID 的 html 控件 因为我将此表单发送到外部网址 对于验证 我在所有输入中执行 runat server 然后我可以使用 requiredfieldvalidato
  • 两个 Div 之间的固定宽度间隙

    有谁知道如何修复两个 div 之间的间隙 我有一个主要内容 Div 里面有两个带有图片的 Div 视图的宽度为 768 像素 当我开始拉伸视图时 两张图片开始相互远离 但理想情况下 主要内容 Div 应该在周围有空白的情况下拉伸 并且图片之
  • PyCharm 中有 HTML 块 {%%} 的快捷方式吗?

    我正在使用 HTML 块 例如 block content 经常使用 但必须输入括号和百分比符号很麻烦 有没有捷径或其他方法可以自动执行此操作 到目前为止我刚刚发现这个 PyCharm 中有插入 的快捷方式吗 https stackover
  • dart中解析对象(不支持的操作:无法添加到固定长度列表)

    我有一个用户对象 当用户登录 注册时 该对象保存到云 Firestore 数据库中 因此 当用户登录时 将从数据库中检索用户对象 并且一切正常 直到我尝试对列表 usersProject 执行 添加 操作 Add the new proje
  • Flexbox 不适用于 iPad 和 Safari [重复]

    这个问题在这里已经有答案了 我在网站上使用 Flexbox 但它在 iPad Air iPad 3 和 Safari PC 上崩溃 设计和代码与此 codepen 类似 http codepen io anon pen xwJzEg htt
  • Calendly 未在 Webflow 中预填写表单

    我在 Webflow 项目中使用 Calendly 并且它有效 不过 我想在 Calendly 中预先填写表格 这里有一个指南 https help calendly com hc en us articles 226766767 Pre
  • CSS 中的像素与像素密度

    我对 HTML 和 CSS 非常陌生 我突然想到 当决定某个东西是 5px 时 比如说 由于像素的物理尺寸取决于密度 所以 5px 在 100 ppi 的屏幕上看起来肯定比在 300 ppi 的屏幕上看起来更大ppi 这是正确的吗 如果是
  • 物化模式覆盖整个页面(模式弹出窗口未带到前台)

    由于保密原因 我无法上传 Web UI 的屏幕截图 物化模态应该表现得像here http materializecss com modals html 但不幸的是 我的网站发生的情况是 包括模式在内的整个页面都是 深色背景 的一部分 模式
  • 禁用引导列上的滚动

    我正在尝试禁用引导列上的滚动 这是我的代码 div class container fluid h 100 div class row h 100 div class col 4 h 100 bg dark fixed div div cl
  • 如何指定网站的语言? (HTML?)

    如何指定页面采用某种语言以便搜索引擎可以理解 这是我放在顶部的元标记吗 如果是 您知道大多数搜索引擎是否使用它来确定语言吗 我已将一页英文内容转换为几种不同的语言 并希望将该信息包含在 html 中 让搜索引擎知道他们正在处理哪种语言 快速
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • jquery从变量中删除html元素

    我将 html 保存在变量中 var itinerary events today html 我有很多 html 和一个按钮我想删除 它的 ID 为 myButton 如何从变量中保存的 html 中删除它 我建议这种方法 var itin
  • 提交表单并重定向页面

    我在 SO 上看到了很多与此相关的其他问题 但没有一个对我有用 我正在尝试提交POST表单 然后将用户重定向到另一个页面 但我无法同时实现这两种情况 我可以获取重定向或帖子 但不能同时获取两者 这是我现在所拥有的
  • 如何阻止破折号自行包裹?

    我有一个标题 标题最后一个单词的末尾是一个破折号 单词和破折号之间没有空格 当浏览器窗口变小时 破折号会中断并换成新行 在自己的行上有一个破折号是不好的排版 如何停止破折号之前的换行 以便最后一个单词运行到新行 这是代码 h1 XYZ co
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • 更改文本输入标签中文本的大小?

    我有一个很大的文本输入框 但我无法更改字体大小
  • 如何在 AngularJS 循环内使用标签

    所以我在里面ng repeat像这样 li li
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a

随机推荐

  • Sharepoint 2013 MVC 5 提供商托管的应用程序。无法使用 [SharePointContextFilter] 在 HttpPost 上进行身份验证

    过去一周我一直在绞尽脑汁 无法解决对共享点提供商托管的应用程序进行正确身份验证的一些问题 我目前正在为公司的 Sharepoint 在线开发一个 sharepoint 应用程序 我正在使用 Visual Studio 2013 我将该应用程
  • Response.WriteFile / Response.BinaryWrite / Response.TransmitFile (ASP.NET) 出现问题

    我有一个简单的网页 可以生成一个 CSV 文件 我希望用户在创建完成后能够下载该文件 我的情况总结如下 CSV 文件可以在内存中或磁盘上创建 对我来说没关系 完成 CSV 文件传输后 我不希望它继续驻留在磁盘上 我尝试过使用 Respons
  • 在 Ext JS 构造函数中将项目推入数组会产生多个项目

    我有一个我定义的 Ext JS 类 在这个班级的constructor 我将一个文本字段推送到我的项目数组上 然后添加到我的测试字符串中 数组和字符串在类定义中都声明为空 但是 如果您尝试创建多个类实例 您将看到项目数组在每个实例之间共享
  • XML 序列化和命名空间前缀

    我正在寻找一种使用 C 的方法 可以将类序列化为 XML 并添加命名空间 但定义该命名空间将使用的前缀 最终我尝试生成以下 XML
  • 如何在没有 Cloud Explorer 的情况下从 Azure 应用服务获取事件日志文件?

    我有 Azure 应用服务 在 Visual Studio 2019 中 我可以执行以下操作来从中获取事件日志 Open 云浏览器窗户 查看 gt 云资源管理器 使用我的 Azure 凭据登录 展开订阅 然后展开资源组 然后展开应用服务 展
  • 如何正确链接 php-fpm 和 Nginx Docker 容器?

    我正在尝试链接 2 个单独的容器 nginx 最新 https registry hub docker com nginx php fpm https registry hub docker com php 问题是 php 脚本不起作用 也
  • AWS SNS 发布到订阅的 Lambda 函数记录空字段

    试图将其发布到 AWS 论坛 但无论这意味着什么 我的帐户似乎 尚未准备好 我设置了一个 AWS Lambda 函数 用 Java 编写 该函数接受 POJO 以允许自动反序列化 JSON 我使用的测试 JSON 如下所示 表示一旦一切启动
  • XCode5无法在iOS模拟器上安装应用程序

    我多次成功安装该应用程序 突然 我收到一条消息 我的应用程序 意外退出 失去连接 iOS 6 x 和 7 会发生这种情况 我已经尝试从模拟器中手动删除应用程序 重置 清理 退出 重新启动 一切 有什么建议吗 在 iOS 模拟器菜单中 执行
  • Spring Boot CSRF

    尝试在最新的Spring Boot上实现CSRF保护 互联网上的所有示例都是基于用户登录和身份验证 我不需要 我的网站没有任何需要身份验证的部分 我想 1 休息请求来自站点内部 不允许来自外部的 wget 直接请求 2 所有页面 路由 必须
  • 链接悬停时的淡入淡出效果?

    在许多网站上 例如http www clearleft com http www clearleft com 您会注意到 当将鼠标悬停在链接上时 它们会淡入不同的颜色 而不是立即切换 默认操作 我假设 JavaScript 是用来创建这种效
  • Express.js在控制器中获取http方法

    我正在构建一个注册表单 本地护照作为身份验证 表单作为表单助手 因为注册只知道 GET 和 POST 我想在一个函数中完成整个处理 换句话说 我正在寻找类似的东西 exports register function req res if r
  • 从 Air Native 扩展返回结构

    是否可以从本机代码返回结构 返回 int 或 boolean 相对简单 但是如何将更复杂的结构返回给动作脚本 您可以返回任何可以在本机代码中表示为 FREObject 的对象 这实际上包括任何 Actionscript 类或 Actions
  • viewDidLoad 中的帧大小错误[重复]

    这个问题在这里已经有答案了 可能的重复 为什么我必须在 viewDidLoad 中手动设置视图的框架 https stackoverflow com questions 6757018 why am i having to manually
  • Angular-ui State - 多个视图看不到我的解析数据

    由于某种原因 当使用多个命名视图 angular ui ui router 时 控制器看不到我的resolvedData 有人遇到过这个问题吗 stateProvider state page abstract true templateU
  • Windows 批处理文件:如何启用命令的内联回显

    如果在 Windows 批处理文件中默认禁用 echo 是否有办法为特定命令 内联 启用它 我知道可以回显特定命令disabled通过在命令前添加 但是有没有办法做相反的事情呢 例如 假设有一个像这样的批处理文件 echo off cmd1
  • UITableView 顶部出现间隙[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我不确定现在问这个问题是否合适 我正在表视图上使用 Xcode 5 预览版 现在的问题是我的表格视图是否被选择为group比我在第一个单元
  • 由于触摸事件上的类切换/高度变化而导致可点击区域错位

    如果您切换上方元素的高度 则触摸设备上的链接可点击区域会出现奇怪的行为 如果您运行以下代码片段 例如 将其保存在本地并使用 chrome 来模拟触摸事件 您会注意到哈希值 mylink在某些情况下 您没有点击红色链接区域 会将 url 添加
  • Android NullPointerException 在视图或适配器中或

    我不知道还能去哪里看 我对这个错误感到疯狂 它不是来自使用空变量 它似乎只是重新启动应用程序而不更改任何代码 有谁知道 java lang NullPointerException Attempt to invoke virtual met
  • 如何在Java中查找年月日中两个日期之间的差异? [复制]

    这个问题在这里已经有答案了 假设我有 Employee模型有开始日期作为其属性变量和晋升型号有促销日期 我想知道员工在晋升之前已经工作了多长时间 我必须找到 PromotionDate 和 startDate 之间的差异 如果我得到 sta
  • HTML 表单:POST 对象数组

    提交班级名单 一次添加3名学生 每个学生都有最初 最后的年龄 问题 我们如何才能将所有学生放入数组中 students 0 gt Array first gt first name for 0 last gt last name for 0