Laravel提交表单具有相同的输入名称ajax
Posted
技术标签:
【中文标题】Laravel提交表单具有相同的输入名称ajax【英文标题】:Laravel Submitting form with same input name ajax 【发布时间】:2021-12-19 09:32:49 【问题描述】:我的 ajax 函数需要帮助。我有一个表单可以提交具有相同输入名称的数据
当我在没有 javascript 的情况下运行我的代码时,我可以插入多个具有相同名称的输入数据,
提交的结构
"_token":"CepbQkKwKziSRwDJKuqlEa5i4E21Y5jvSbmDNvqu","id":"7","service_name":["asfd","safd"]
当我实现 javascript 时,一个连接的字符串被发送到控制器,这使得 service_name 无法访问。
FORMDATA: “_标记= CepbQkKwKziSRwDJKuqlEa5i4E21Y5jvSbmDNvqu&ID = 7&SERVICE_NAME%5B%5D = sdfg&SERVICE_NAME%5B%5D = gfds&_token = CepbQkKwKziSRwDJKuqlEa5i4E21Y5jvSbmDNvqu&ID = 8&_token = CepbQkKwKziSRwDJKuqlEa5i4E21Y5jvSbmDNvqu&ID = 9&_token = CepbQkKwKziSRwDJKuqlEa5i4E21Y5jvSbmDNvqu&ID = 10&_token = CepbQkKwKziSRwDJKuqlEa5i4E21Y5jvSbmDNvqu&ID = 11&_token = CepbQkKwKziSRwDJKuqlEa5i4E21Y5jvSbmDNvqu&ID = 18” P>
我的 javascript 函数
jQuery("form.ajax").on("submit", function (e)
e.preventDefault();
jQuery.ajax(
url: "/admin/adminpanel/insertService/",
type: "post",
data:
formdata: $(".ajax#servicesForm").serialize()
,
dataType: "JSON",
success: function (response)
console.log(response);
,
error: function (jqXHR, exception)
var msg = "";
if (jqXHR.status === 0)
msg = "Not connect.\n Verify Network.";
else if (jqXHR.status === 404)
msg = "Requested page not found. [404]";
else if (jqXHR.status === 500)
msg = "Internal Server Error [500].";
else if (exception === "parsererror")
msg = "function Requested JSON parse failed.";
else if (exception === "timeout")
msg = "Time out error.";
else if (exception === "abort")
msg = "Ajax request aborted.";
else
msg = "Uncaught Error.\n" + jqXHR.responseText;
);
);
我的 PHP 控制器功能
public function insert(Request $request)
return response()->json($request);
【问题讨论】:
也许这个***.com/a/323044/7498116 【参考方案1】:使用 FormData 对象,从数据发送
fd = new FormData();
fd.append("input-name", value1);
fd.append("input-name2", value2 OR arry of value);
jQuery.ajax(
url: "/admin/adminpanel/insertService/",
type: "post",
data:
formdata: fd
【讨论】:
【参考方案2】:我找到了解决方法:
首先,我创建了一个数组,并将input[name='service_name[]']
的所有实例推入数组中。
然后我用ajax
传递数据并能够插入数据。
var serviceArray = new Array(), id;
jQuery.map($("input[name='service_name[]']"), function(obj, index)
serviceArray.push($(obj).val());
);
然后我的ajax
脚本:
jQuery.ajax(
url: "/admin/adminpanel/insertService/",
type: 'post',
data:
'service_name': serviceArray,
'id': id
,
dataType: 'JSON',
success: function(response)
console.log(response);
);
【讨论】:
以上是关于Laravel提交表单具有相同的输入名称ajax的主要内容,如果未能解决你的问题,请参考以下文章
当多个输入具有相同名称时,根据输入类型设置 jquery 表单验证