php - Laravel 5 在 Controller 中获取 AJAX 数组 POST

标签 php jquery arrays ajax laravel

我有以下表格:

<td>
  <input type="text" name='name[]' class="form-control"/>
</td>
<td>
  <input type="text" name='mail[]' class="form-control"/>
</td>
<td>
  <select name="gender[]" class="form-control">
    <option value="m">Male</option>
    <option value="f">Female</option>
  </select>
</td>
<td>
  <input type="date" name='birth[]' class="form-control"/>
</td>
<td>
  <input type="number" name='dni[]' class="form-control"/>
</td>
<td>
  <input type="number" name='phone[]' class="form-control"/>
</td>

当我尝试提交表单时我的 ajax 调用

$('#form-reserve-list').on('submit', function(e) {
    e.preventDefault();
    var names =    $("input[name='name[]']").serialize();
    var mails =    $("input[name='mail[]']").serialize();
    var genders =  $("select[name='gender[]']").serialize();
    var births =   $("input[name='birth[]']").serialize();
    var dnis =     $("input[name='dni[]']").serialize();
    var phones =   $("input[name='phone[]']").serialize();
    var _token =   $('input[name=_token]').val();
    var est_id =   $('input[name=est_id]').val();
    var event_id = $('input[name=event_id]').val();

    var url = 'http://localhost:82/boulevard/public/event/reserve/list';

    $.ajax({
        type: 'POST',
        url: url,
        data: {names:names, mails:mails, genders:genders, births:births, dnis:dnis, phones:phones, _token: _token, est_id:est_id, event_id:event_id},
        cache: false,
        success: function(data){
            alert(data);
        }
    });

我想在我的 Controller 中接收它并执行 foreach 或 for 循环并将其保存到我的数据库中,但问题是当我尝试时:

    $names = Input::get('names'); //from ajax names
    foreach($names as $name){
        $name[]; 
        //also tried $name[$key] after i added $key =>
    }

我做错了什么吗?谢谢您的帮助。

编辑: 当我在ajax中执行alert($names)时,它显示为 name%5B%D=carlos&name%5B%D=kevin 这是它应该的方式吗?我也做了 dd($names);并且还显示 name%5B%D=carlos&name%5B%D=kevin 但是当我如上所述使用 foreach 循环时,chrome 控制台显示内部错误 500,我应该使用 foreach 吗?

编辑2: 当我执行 dd(Input::all())
name%5B%5D=卡洛斯&name%5B%5D=mendieta&name%5B%5D=cordero
我如何循环这些?

最佳答案

//No need to serialize each field.
//You could do it like this:

$('#form-reserve-list').on('submit', function(e) {

    e.preventDefault();

    var formData = $(this).serialize();
    var url = 'http://localhost:82/boulevard/public/event/reserve/list';

    $.ajax({
        type: "POST",
        url: url,
        data: formData,
        dataType: "json",
        success: function(data) {

        },
        error: function(){
            alert('opps error occured');
        }
    });

});

关于php - Laravel 5 在 Controller 中获取 AJAX 数组 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31980457/

相关文章:

javascript - 下载带有 http header 的文件

单击特定表单的任何复选框时的 jquery 事件

javascript - 使用另一个对象数组过滤对象数组,而不知道对象中有哪些属性

javascript - 根据日期显示项目 - 时间轴样式

javascript - 恢复页面刷新时下拉选择的选项?

javascript - 没有在 laravel 的 View 页面上获得 css 和 js 效果

javascript - 如何检查一个字符串是否包含 NodeJS 中子字符串数组中的文本,然后找到该子字符串在数组中的索引?

javascript - 从 JavaScript 中的索引向后遍历数组

php - 从 PHP JSON 返回 SQL Blob

php - 关于在 PHP 中包含 html 页面的问题