【问题标题】:Laravel not getting all request dataLaravel 没有获取所有请求数据
【发布时间】:2019-12-11 07:38:17
【问题描述】:

我想在我的 laravel 项目中使用 ajax 将 select2 多个选择值传递给数据库。在使用 ajax 之前,我使用 get 请求传递了值。所有值都显示为 url 参数,但是当它检查请求时 -> all() 它只获取令牌值和最后一个值,其他值不显示。为什么缺少其他一些值?如何获得所有值?我还想将它们存储在数据库中。此外,如何使用 ajax 发送这些值。

完整的网址示例: http://127.0.0.1:8000/send_services?_token=oo6hLRavd6mPczbsgjwQ8RXSNUohhktO5NyNGxCN&services_select=6&services_select=8&services_select=7

这是我的 ajax 请求(使用 ajax 发送数据而不是普通表单提交):

$('#submit-service').click( function() {
    var terms = $("#service-select").val();
    $.ajax({
        type: "GET",
        url: '/send_services',
        data: terms
    })
    .done(function(result) {
        console.log(result);
    })
    .fail(function(error) {
        console.log(error);
    });
});

我想主要使用ajax发送这些数据。

【问题讨论】:

  • 兄弟,terms的值是多少,请先检查一下,你有没有在terms变量中得到多个值?进行控制台或警报以进行调试。调试后你会明白一切:)
  • 据我所知,如果您发送 get/post 请求并且少数字段具有相同的名称,它只会占用最后一个并覆盖上一个,您需要使用唯一名称/您使用多次:services_select 名称和我认为这是一个原因

标签: javascript php html ajax laravel


【解决方案1】:

你只需要在 select 标签的 name 属性中添加数组 例如

<select multiple="" name="multiple_values[]" id="service-select">

【讨论】:

  • 谢谢。有用!我怎样才能将它们存储到数据库。我要去laravel
  • 如果你想将这些多个值存储到一列,你需要在控制器中用逗号连接这些值。
  • @Hashan 仅用于连接部分?
  • 是的。我添加了一个 foreach 循环,但我无法理解将值传递给 db。 ` foreach ($services as $id=>$value) { DB::table('services')->insert(['service_id' => $value]); }` 这是代码。但它给出了错误“Column not found: 1054 Unknown column '0' in 'field list' (SQL: insert into services (0, 1) values (6, 9))”。这样做有什么合适的方法吗?
  • @Hasan 你做错了,在插入数据库之前连接字符串
【解决方案2】:

使用ajaxGET发送值是一样的,你只需使用URL:

$.ajax({
     type: "GET",
     url: '/send_services?data1=value1&data2=value2&data3=value3'
});

【讨论】:

    猜你喜欢
    • 2021-08-16
    • 2020-04-01
    • 2018-01-05
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多