ajax - 如何在ajax和laravel中传递数组和其他字段

标签 ajax laravel

我正在使用 ajax 和 laravel 上传多个文件。我将文件名存储在 MySQL 数据库中。在 Controller 中,我正在检查是否正在获取数组。只有其他 block 正在工作。当我提交数据时,它没有传递数组。我不知道为什么。请检查我的代码哪里错了。

谢谢

 <form  enctype="multipart/form-data">
      {{ csrf_field() }}
      <div class="form-group">

      <div class="row text-center">
      <div class="col-lg-3">
       Select Event
      </div>
      <div class="col-lg-6">
             <select name="eventname"  class="form-control">
                 <option disabled selected>Select</option>
                 @foreach($event as $eve)
                 <option value="{{$eve->id}}">{{$eve->title}}</option>
                 @endforeach
             </select>
      </div>

      </div>
      </div>

      <div class="form-group">

        <div class="row text-center">
        <div class="col-lg-3">
         Upload A file
        </div>
        <div class="col-lg-6">
               <input type="file" id="eventgallery" class="form-control" name="eventgallery[]" multiple>
        </div>

        </div>

      </div>
      <div class="form-group">
        <div id="images">

        </div>
     </div>
    </form>

ajax代码

$('#eventgallery').on('change',function(){
    var image = '';
    $.ajax({
      url : '{!! url('uploadimage') !!}',
      date: new FormData(this.form),
      method:'POST',
      dataType: 'json',
      contentType:false,
      cache:false,
      processData:false,
      success:function(data)
      {
          console.log(data);
      }

    });

});

Controller

 public function store(Request $request)
    {
        $name = $request->file('eventgallery');

        if (is_array($name) || is_object($name))
        {
            foreach($name as $file)
            {
                $extension = $file->getClientOriginalExtension();
                $filename = asset('uploads/eventgallery'.$request->eventname.rand(11111,9991).'.'.$extension);
                $file->move("uploads/eventgallery",$filename);

                $event = EventGallery::create([
                    'event_name' => $request->eventname,
                    'eventimage_url' => $filename
                ]);
            }
            $eve = Event::find($request->eventname);
            $eventgallery = $eve->galleryies;
            return response()->json($eventgallery);
        }
        else
        {
            return response()->json('it is not a array');

        }



   }

最佳答案

问题是您将帖子变量作为日期发送。它应该是数据

$('#eventgallery').on('change',function(){
    var image = '';
    $.ajax({
      url : '{!! url('uploadimage') !!}',
      data: new FormData(this.form),
      method:'POST',
      dataType: 'json',
      contentType:false,
      cache:false,
      processData:false,
      success:function(data)
      {
          console.log(data);
      }

    });

});

关于ajax - 如何在ajax和laravel中传递数组和其他字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59508303/

相关文章:

laravel - 使用 Laravel-Websockets 向特定用户发送消息(一对一聊天)

javascript - Laravel 5.6 如何将 URL 作为 URL 参数传递?

c# - 使用 MVC 托管时无法通过 AJAX 调用 WebAPI Controller

javascript - Grails 刷新谷歌图表

javascript - 如何将图像数据 uri 从 javascript 传递到 php

php - 如何在本地 Vagrant 上使用 php cURL?

php - Laravel:按关系上的计数 id 字段排序查询

php - Laravel 验证邮件预览,渲染验证邮件

javascript - $_GET JavaScript 和 AJAX...

javascript - 在 ajax 链接选择框中添加日期选择器