#ajax #laravel
#ajax #laravel
Вопрос:
Я хочу удалить изображение в окне предварительного просмотра, а также удалить его в базе данных с помощью ajax. Удаление изображения в окне предварительного просмотра прошло успешно, но удаление его из базы данных не сработало.
вот мой ajax:
$(document).ready(function() {
document.getElementById('pro-image').addEventListener('change', readImage, false);
$(".preview-images-zone").sortable();
$(document).on('click', '.image-cancel', function() {
let no = $(this).data('no');
let idData = $(this).data('id');
$(".preview-image.preview-show-" no).remove();
$.ajax({
type: 'POST',
url: '{{url("unit/API/simpan")}}',
data: {
'id': idData
},
success: function(data) {
alert('success');
}
});
});
});
Мой Html:
<!-- Percobaan Preview -->
<fieldset class="form-group">
<div class="offset-md-2 col-md-6">
<a href="javascript:void(0)" onclick="$('#pro-image').click()" class="btn btn-primary">Upload Gambar</a>
<input type="file" id="pro-image" name="gambarku[]" style="display: none;" class="form-control" multiple>
</div>
</fieldset>
<div class="preview-images-zone offset-md-2 col-md-8">
<!-- Gambar Utama -->
<div class="preview-image preview-show-1">
<div class="image-cancel" data-no="1">x</div>
<div class="image-zone"><img id="pro-img-1" src="{{asset('storage/rumah/'.$rumahku->gambar_rumah)}}"></div>
</div>
<!-- Gambar Tambahan -->
<?php $counter = 2 ?>
@foreach($rumahku->gambar as $rows)
<div class="preview-image preview-show-{{$counter}}">
<div class="image-cancel" data-no="{{$counter}}" data-id="{{$rows->id_gambar}}">x</div>
<div class="image-zone"><img id="pro-img-{{$counter}}" src="{{asset('storage/rumah/'.$rows->gambar_unit)}}"></div>
</div>
<?php $counter ?>
@endforeach
</div>
<!-- /preview -->
мой маршрут
Route::post('unit/API/simpan/{id}', 'partnerUnitController@simpanGambar');
мой контроллер
public function simpanGambar($id)
{
$gambar = Gambar::find($id);
$gambar->delete();
}
Комментарии:
1. ваш
url: '{{url("unit/API/simpan")}}
hereid
отсутствует2. Helo Kamlesh, спасибо за ответ на мое сообщение. идентификатор находится в данных: {‘id’: idData}
3. это так не работает
4. Вы определили свой маршрут с помощью идентификатора, требуемого в URL. Переданные данные — это нечто другое. Как сказал камлеш, попробуйте добавить идентификатор к URL. Кроме того, было бы хорошо, если бы вы прикрепили полученный ответ.
5. спасибо, у меня есть идентификатор переменной из let id = $(this).data(‘id’) , не могли бы вы сказать мне, как передать его в ajax
Ответ №1:
вы можете попробовать это
Route::post('unit/API/simpan', 'partnerUnitController@simpanGambar');
и
public function simpanGambar(Request $request)
{
$gambar = Gambar::find($request->id);
$gambar->delete();
}
или в ajax
$.ajax({
type: 'POST',
url: '{{url("unit/API/simpan")}}' '/' id, <---------- pass id here
Комментарии:
1. у меня есть идентификатор переменной из let id = $(this).data(‘id’), не могли бы вы сказать мне, как передать его в ajax
2. спасибо, Камлеш, это работает, когда я переключаюсь на метод get на маршруте и ajax. Но с методом POST это не работает.
3. Пожалуйста, добавьте отладочную информацию (ответ) на ваш вопрос.
4. @kamlesh Paul, я протестировал его с помощью postman, и этот результат равен 404 .я использовал этот URL: 127.0.0.1:8000/unit/API/simpan / 27
5. Kamlesh я попробовал ваш ответ и ввел этот URL-адрес в свой браузер 127.0.0.1: 8000 / unit / API / simpan, и результатом стало сообщение об ошибке «Метод GET не поддерживается для этого маршрута». Поддерживаемые методы: POST. Он должен быть перенаправлен на 404 точно так же, как я использую URL 127.0.0.1:8000 / unit / store (хранилище контроллера по умолчанию).