【问题标题】:Laravel Submitting form with same input name ajaxLaravel提交表单具有相同的输入名称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);
    }

【问题讨论】:

标签: javascript ajax laravel


【解决方案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);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2014-12-19
      • 1970-01-01
      • 2020-11-03
      • 2018-02-20
      • 2016-07-09
      • 2014-11-28
      • 1970-01-01
      • 1970-01-01
      • 2022-07-13
      相关资源
      最近更新 更多