【发布时间】:2016-02-28 08:22:03
【问题描述】:
在我的网站上,我有一个带有图像的滑块。在后端,显示当前滑块图像以及添加输入字段的按钮,因此我可以为滑块上传新图像。
添加输入字段的代码是用一些 jQuery 完成的。当我单击按钮时,正在执行以下 Javascript 函数:
function addSliderImageEdit(){
dataToAppend =
"<li class='list-group-item'>" +
"<div class='form-inline'>" +
"<div class='input-group'>" +
"<input type='file' id='slider-edit' class='slider-edit' name='slider-edit'/>"+
"<span class='input-group-btn'>" +
"<button class='btn btn-danger btn-remove-image-upload' type='button'>Verwijder afbeelding</button>" +
"</span>" +
"</div>" +
"</div>" +
"</li>";
$('#btn-add-image-upload').on('click', function () {
$(".list-group")
.append(dataToAppend);
});
$('.list-group').on('click', '.btn-remove-image-upload', function () {
$(this).parent().parent().parent().parent().remove();
})
}
代码运行良好,并且正在添加带有删除按钮的输入字段。
问题是我无法访问使用此动态添加的输入字段上传的图像。当我使用Input::file() 或Request::file('slider-edit') 时,结果总是null。
我认为这是因为我没有使用 Laravel 表单生成器来创建这些动态输入字段。我试图更改 Javascript 代码,以便它使用 Laravel 表单生成器,但它不起作用。
那么,有人知道我如何使用 Laravel 中动态添加的输入字段访问这些正在上传的文件吗?
提前致谢。
==================编辑==================
我的表单以:
开头{!! Form::model($project, ['method' => 'PATCH', 'action' => ['Backend\ProjectController@update', $project->id], 'files' => true]) !!}
显示当前滑块图像的代码:
<div class="row">
<div class="form-group">
<div class="col-lg-12">
<p><strong>Huidige slider afbeeldingen</strong></p>
<ul class="list-group sortable-images">
{!! Form::text('order', '', ['id' => 'serialize_input']) !!}
<div class="form-horizontal">
{!! Form::button('Voeg afbeelding toe', ['id' => 'btn-add-image-upload', 'class' => 'btn
btn-default']) !!}
</div>
@foreach($images as $image)
<li class="list-group-item">
<p style="display:none">{{ $image->id . ';'}}</p>
<img src="/images/sliders/{{ $image->image }}" class="img-responsive">
<div class="input-group">
{!! Form::text('image[' . $image->id . ']', $image->image, ['class' => 'file-caption-name form
form-control file-caption kv-fileinput-caption']) !!}
<div class="input-group-btn">
<button type="button"
class="btn btn-danger fileinput-remove fileinput-remove-button"
data-toggle="modal" data-target="#myModal">
<i class="glyphicon glyphicon-trash"></i>
<span><span class="hidden-xs">Verwijder</span> {!! Form::checkbox('delete_image[' . $image->id . ']', $image->image) !!}</span>
</button>
<div tabindex="500" class="btn btn-success btn-file"><i
class="glyphicon glyphicon-picture"></i> <span class="hidden-xs">Pick Image</span>
{!! Form::file('sliderimage[' . $image->id . ']')!!}
</div>
</div>
</div>
</li>
@endforeach
</ul>
</div>
</div>
</div>
然后关闭表单:
{!! Form::close() !!}
我不知道这是否正是您所要求的,但这是放置动态生成代码的代码。
【问题讨论】:
-
您需要在此处显示您的表单代码。也许表单没有 enctype="multipart/form-data" 。或者其他问题也可以。没有表格很难说
-
提示:使用
$(this).closest('li').remove();而不是所有那些 parent() -
@RomanGelembjuk 我添加了一段代码。我希望这就是你所说的!还有尤里,谢谢你的建议。我不知道。
标签: javascript php laravel laravel-5