Php 使用FormData Laravel将值数组发送到控制器

Php 使用FormData Laravel将值数组发送到控制器,php,ajax,laravel,form-data,Php,Ajax,Laravel,Form Data,我有一个表单,从中我可以从最终用户那里得到开放时间和关闭时间。 用户可以输入多个开放时间和关闭时间的值。问题是我只得到数组中的第一个时间值,而不是所有输入的值。如何使用Formdata将值数组发送到控制器 刀片 控制器 $closing_time = $request->input('closing_time'); dump($opening_time,$closing_time); 输出: 您将按id获取元素,其中只有一个html元素 formData.append("cl

我有一个表单,从中我可以从最终用户那里得到开放时间和关闭时间。 用户可以输入多个开放时间和关闭时间的值。问题是我只得到数组中的第一个时间值,而不是所有输入的值。如何使用Formdata将值数组发送到控制器

刀片

控制器

$closing_time = $request->input('closing_time');

dump($opening_time,$closing_time);
输出:

您将按id获取元素,其中只有一个html元素

formData.append("closing_time[]", document.getElementById('closing_time[]').value);
按类名获取元素在元素上迭代一个循环,获取值也将这些值存储在javascript数组中,然后根据
ID
属性将其附加到formData中,属性在页面中应该是唯一的:

此属性为元素指定名称。此名称在文档中必须是唯一的

如果有多个元素具有相同的ID,则HTML无效

因此,
getElementById()
只返回单个元素。不能让它返回多个元素


有两个相关函数将返回一个元素数组-
getElementsByName
,或
getElementsByClassName
,它们可能更适合您的需求。

在js中,id属性应该是唯一的。如果您有多个
id=“closing\u time”
,则您将收到一个警告错误或第一个警告错误element@sta在此之前,我使用form.serilize()并能够获得“closing_time”的所有值,但这是基于“name”。现在我想做同样的事情,但是对于ID,我怎么做呢?我已经尝试将“closing_time”改为“closing_time[]”,但是它抛出了一个错误。
$closing_time = $request->input('closing_time');

dump($opening_time,$closing_time);
formData.append("closing_time[]", document.getElementById('closing_time[]').value);