如何使用jquery将JavaScript数组发布到Laravel的控制器

10 浏览
0 Comments

如何使用jquery将JavaScript数组发布到Laravel的控制器

我有一个类似以下的数组:\n

var a = [
        {
            "start":"2015-01-12T00:00:00.000Z",
            "allDay":false,
            "promotion_option":"banner"
        },
        {
            "start":"2015-01-13T00:00:00.000Z",
            "allDay":false,
            "promotion_option":"banner"
        }
    ];

\n然后我使用JQuery Ajax将这个数组对象发送了出去:\n

$.ajax({
    type: method,
    url: url,
    data: a,
    success: function(res) {
        var message = res.mesg;
        if (message) {
            $('.flash').html(message).fadeIn(300).delay(250).fadeOut(300);
        };
    }
});

\n在我的控制器中,当我尝试 dd(Input::all())时,只返回了以下内容:\n

array(1) {
  ["undefined"]=>
  string(0) ""
}

\n那么,我该如何获取我发送的值呢?

0
0 Comments

问题的原因是在前端页面中,需要将一个JavaScript数组传递给Laravel的控制器。解决方法是使用jQuery将JavaScript数组转换为字符串,并在后端接收到http请求时将其转换回数组。

首先,我们可以尝试使用JSON.stringify(a)将JavaScript数组转换为字符串。这样将会得到如下所示的结果:

"[{"start":"2015-01-12T00:00:00.000Z","allDay":false,"promotion_option":"banner"},{"start":"2015-01-13T00:00:00.000Z","allDay":false,"promotion_option":"banner"}]"

需要注意的是,这将JavaScript数组转换为字符串,并在后端接收到http请求时需要将其转换回数组。希望这对您有所帮助。

0
0 Comments

问题:如何使用jquery将JavaScript数组发布到Laravel的控制器?

原因:需要将数据作为对象传递,并在成功回调中使用dataType:'json',因为在res.mesg中使用了这个。

解决方法:在$.ajax()中使用以下代码:

$.ajax({
    type: method,
    url: url,
    data: {a:a},//<== 在这里使用对象
    dataType:'json',// 添加这个,因为你使用了res.mesg
    success: function(res) {
        var message = res.mesg;
        if (message) {
            $('.flash').html(message).fadeIn(300).delay(250).fadeOut(300);
        };
    }
});

0