I have a table and in each row I have a button to edit the image of the corresponding row and other data of the row, the problem is that all the data is sent to my controller but the data of the image is not It sends and I do not know what is the reason, that only happens in the modal, because I have used the same in a normal page and if it happens.
VIEW (MODAL)
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<div class="row">
<div class="col-sm-12 b-r"><h3 class="m-t-none m-b">CREAR SLIDER</h3>
<div class="hr-line-dashed"></div>
{!! Form::open(['method' => 'POST','route' => ['inicio.actualizarSler','id'], 'files' => true,'id'=>'form-editarslider']) !!}
<input type="hidden" id="idslider" name="idslider">
<div class="form-group"><label>Titulo</label> <input type="text" id="tituloEditar" name="tituloEditar" placeholder="Ingrese titulo" class="form-control"></div>
<div class="form-group"><label>Subtitulo</label> <input type="text" id="subtituloEditar" name="subtituloEditar" placeholder="Ingrese subtitulo" class="form-control"></div>
<input type="hidden" name="idMenu" value="{{ $menu->idMenu }}">
<div class="form-group"><label>URL</label> <input type="text" id="descripcionEditar" name="descripcionEditar" placeholder="Ingrese enlace" class="form-control"></div>
<div class="form-group">
<div class="form-group">
{!! Form::file('rutaImagenSlider',['id'=>'file-rutaImagenSlider']) !!}
<img name="rutaImagenSlider" src="" id="rutaImagenSlider" style="width: 50%;"/>
</div>
</div>
{!! Form::close() !!}
<div>
<button onclick="guardarSlider();" class="btn btn-sm btn-primary pull-right m-t-n-xs" type="submit"><strong>REGISTRAR</strong></button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
ROUTE:
Route::post('actualizarSler/{cod}', 'MenuController@actualizarSler')->name('inicio.actualizarSler');
Controller:
public function actualizarSler(Request $request)
{
$slider = Detalle_imagen::find($request->cod);
$slider->titulo = $request->tituloEditar;
$slider->subtitulo = $request->subtituloEditar;
$slider->enlace = $request->descripcionEditar;
if(isset($request->rutaImagenSlider)){
$file = $request->file('rutaImagenSlider');
$slider->rutaImagen = $file->getClientOriginalName();
\Storage::disk('local')->put( $slider->rutaImagen, \File::get($file));
}
$slider->save();
return response()->json($slider->rutaImagen);
}
JS and ajax
function mostrarEditarSlider(id,titulo,subtitulo,enlace,ruta_imagen) {
$("#tituloEditar").val(titulo);
$("#subtituloEditar").val(subtitulo);
$("#descripcionEditar").val(enlace);
$("#idslider").val(id);
document.getElementById("rutaImagenSlider").src = '../../storage/'+ruta_imagen;
$("#file-rutaImagenSlider").change(function () {
readURL(this, 'rutaImagenSlider');
readURLin(this, 'salvacion');
});
$("#exampleModal").modal();
}
function guardarSlider() {
var form = $("#form-editarslider");
var urles = form.attr('action').replace('id',$("#idslider").val());
var formdata = form.serialize();
$.post({
url: urles,
data:formdata,
dataType: 'json',
success : function (res) {
console.log(res);
}
})
}
function readURL(input, id) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#' + id).attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
pdt: IF THE OTHER DATA GOES BY ONLY THE IMAGE DOES NOT HAPPEN