#php #ajax #laravel
Вопрос:
Я пытаюсь удалить все элементы, когда я устанавливаю флажок «Затем выбрать все», но он удаляет один элемент.
Вот код, в котором я получаю идентификаторы всех элементов при нажатии на флажок
$delete_vehicle_trim =Item::find($request->deletetrimid);
if ($delete_vehicle_trim != null) {
$delete_vehicle_trim->delete();
return response()->json(['msg'=>'Record Delete Successfully']);
}
else {
return response()->json(['msg'=>'Error In Delete']);
}
при вызове ajax trim = []
я получаю кратный идентификатор в этом массиве
function viewtrim(id){
$('#select-all').click(function(event) {
var trim = [];
$.each($("input[name='checkbox']:checked"), function(){
trim.push($(this).val());
});
alert("Id is: " trim.join(", "));
$('#select-all').on('click', function(e) {
var allVals = [];
$("checkbox:checked").each(function() {
id.push($(this).attr('data-id'));
});
});
$.ajax({
url : 'viewtrim/' viewtrimid,
type : 'GET',
data : {
"_token": "{{ csrf_token() }}",
'viewtrimid': viewtrimid,
"_method": 'GET',
},
}
});
}
console.log($("input[name=checkbox]").val());
Какая-нибудь помощь?
Комментарии:
1. Почему вы добавляете другой обработчик щелчка в тот же элемент внутри обработчика щелчка, который у вас уже есть на нем? В этом нет особого смысла. (Кроме того, если вы устанавливаете флажки с
:checked
помощью , как это вообще «все» из них?) И вам, вероятно, нужен другой метод на стороне сервера, чемItem::find
(я сомневаюсь, что он может обрабатывать разделенный запятыми список идентификаторов в качестве параметра?), А затем перебирать найденные элементы, чтобы удалить их2. Покажите свой контроллер.
3. В JS есть некоторые проблемы: 1) один обработчик событий добавлен внутри другого, оба делают одно и то же? Один из них должен быть удален. 2) Когда срабатывает AJAX , он пытается использовать
viewtrimid
, который не был установлен. Отдельно, просто догадываюсь, но должноname='checkbox'
ли быть на самом делеtype='checkbox'
? Кроме того, вам не нужно указывать_method
для GET или POST, удалите это. Наконец, вы должны удалять вещи, используя сообщение, а не GET (и это использует ваш CSRF, который не используется в GET).