Laravel -Как обновить форму, содержащую тип ввода файла - PullRequest
0 голосов
/ 09 апреля 2020

Я пытался обновить форму, которая имеет входные данные файла. Я хочу, чтобы пользователи изменяли файлы только в том случае, если они не удовлетворены ранее установленным файлом, иначе ранее установленный файл будет обновлен в базе данных при отправке формы. Данные, извлеченные из моей базы данных (т.е. ранее сохраненная информация о файле), имеют вид $ query-> document-> name, который должен представлять имя файла

Мой код формы выглядит следующим образом:

<div class="col-md-6">
    <div class="form-group">
        <label for="account_statement">{{$form->name}} :*</label>
    <input class="form-control" value="{{$query->document->name}}" id="{{$form->short_name}}" name="{{$form->short_name}}" type="file">
        
    </div>
</div>

Однако мой написанный код не дает желаемого результата. Форма даже не показывает, что файл уже установлен.

1 Ответ

0 голосов
/ 09 апреля 2020

В целях безопасности браузер не позволяет установить значение входного файла. Вам нужно будет использовать javascript, чтобы определить, существует ли файл.

Ваш код html будет содержать два экрана: один показывает файл, если он существует, другой - входной файл. Затем вы используете javascript, чтобы определить, когда показывать какой дисплей. Примерно так:

  <span id="documentName">{{$form->document}}</span> <button id="removeFile">Remove</button>
  <input class="form-control d-none" id="document" name="document" type="file"/>

Javascript

// I assume you are using bootstrap and hence jQuery
<script>
  $('button#removeFile').click(function(e) {
    if(@{{ form->name }})
      $('documentName').addClass('d-none')
      $('document').removeClass(d-none')
    }
  }
</script>
...