Laravel - JQuery Добавление зависимостей формы, вставка в базу данных - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть динамическая форма и кнопка динамического ввода файла.enter image description here

Проблема в том, что это не зависит, когда я добавляю другую форму.Данные вставляются в одну строку, но мне нравится, что каждая форма вставляется в отдельную строку.

Например, когда я добавляю две формы, выходные данные в базе данных будут находиться в одной строке.Мне нужен взрыв из-за изображений.Изображения должны быть вставлены в одну строку, а не в заголовки и описания.

Контроллер

<?php

$this->validate($request, [
    'title' => 'required',
    'description' => 'required',
    'fleet_image' => 'required'
]);

if ($request->has('fleet_image')) {
    //Handle File Upload

    $fleet = [];
    foreach ($request->file('fleet_image') as $key => $file) {
        $filenameWithExt = $file->getClientOriginalName();
        $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
        $extension = $file->getClientOriginalExtension();
        $fileNameToStore = $filename . '_' . time() . '.' . $extension;
        $path = $file->storeAs('public/fleet_images', $fileNameToStore);
        array_push($fleet, $fileNameToStore);
    }

    $fileNameToStore = serialize($fleet);
} else {
    $fileNameToStore = 'noimage.jpg';
}

if (count($fleet)) {
    foreach ($fleet as $key => $value) {
        $fleetContent = new Fleet;
        $fleetContent->title = $request->title[$key];
        $fleetContent->description = $request->description[$key];
        $implodedFleet = implode(' , ', $fleet);
        $fleetContent->fleet_image = $implodedFleet;
        $fleetContent->save();

        return redirect('/admin/airlineplus/fleets')->with('success', 'Content Created');
    }
}

return redirect('/admin/airlineplus/promotions')->with('error', 'Something went wrong.');

Просмотр

{!! Form::open(['action'=>'Admin\FleetsController@store', 'method' => 'POST','enctype'=>'multipart/form-data']) !!}
<div class="table-responsive">
    <table class="table table-bordered" id="dynamic_field">
        <tr>
            <td>{{Form::text('title[]', '', ['class' => 'form-control', 'placeholder' => 'Enter a Title', 'id'=>"exampleFormControlFile1"])}}
                <br>
                {{Form::textarea('description[]', '', ['class' => 'form-control', 'placeholder' => 'Enter a Description'])}}
                <br>
                <form name="add_name" id="add_name">
                    {{ Form::file('fleet_image[]',['id'=>'exampleFormControlFile1']) }}
                </form>
                {{ Form::button('', ['class' => 'btn btn-success fa fa-plus-circle addFile', 'id'=>'addFile','name'=>'addFile', 'style'=>'font-size:15px;']) }}
            </td>
            <td>{{ Form::button('', ['class' => 'btn btn-success fa fa-plus-circle add', 'id'=>'add','name'=>'add', 'style'=>'font-size:15px;']) }}</td>
        </tr>
    </table>
    {{ Form::submit('submit', ['class'=>'btn btn-primary', 'name'=>'submit']) }}
</div>
{!! Form::close() !!}

JQuery / Ajax

<script>  
 $(document).ready(function() {
 $(document).on('click', '.add', function() {
 $('#dynamic_field').append('<tr><td>   {{Form::text('title[]', '', ['class' => 'form-control', 'placeholder' => 'Enter a Title', 'id'=>"exampleFormControlFile1"])}} <br> {{Form::textarea('description[]', '', ['class' => 'form-control', 'placeholder' => 'Enter a Description'])}} <br>  {{ Form::file('fleet_image[]',['id'=>'exampleFormControlFile1']) }} {{ Form::button('', ['class' => 'btn btn-success fa fa-plus-circle addFile', 'id'=>'addFile','name'=>'addFile', 'style'=>'font-size:15px;']) }}</td><td><button type="button" name="remove" class="btn btn-danger btn_remove  fa fa-minus-circle"></button></td></tr>');
 });

 $(document).on('click', '.addFile', function() {
 var elem = '<tr><td>{{ Form::file('fleet_image[]',['id'=>'exampleFormControlFile1']) }}<button type="button" name="remove" class="btn btn-danger btn_remove  fa fa-minus-circle"></button></td></tr>';
 $(elem).insertAfter($(this).closest('tr'));
 });

$(document).on('click', '.submit', function() {
 $.ajax({
      method: "POST",
      data: $('#add_name').serialize(),
      success: function(data) {
      alert(data);
      $('#add_name')[0].reset();
      }
 });
 });


 $(document).on('click', '.btn_remove', function() {
 $(this).closest('tr').remove();
 });
 });
 </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...