Javascript 用于在Laravel应用程序中删除警报的sweetalert
我试图使用Javascript 用于在Laravel应用程序中删除警报的sweetalert,javascript,php,jquery,laravel,sweetalert,Javascript,Php,Jquery,Laravel,Sweetalert,我试图使用sweetalert发出删除警报,但每当我从sweetalert确认delete时,表的第一行总是被删除。例如,即使我尝试删除表中的第三行,sweetalert也会删除第一行 如何更正代码 <tbody> @foreach($album_names as $album) <tr> <td>{{ $album->album_name }}</td> <td&
sweetalert
发出删除警报,但每当我从sweetalert确认delete
时,表的第一行总是被删除。例如,即使我尝试删除表中的第三行,sweetalert也会删除第一行
如何更正代码
<tbody>
@foreach($album_names as $album)
<tr>
<td>{{ $album->album_name }}</td>
<td>
{!! Form::open(['route' => ['album.destroy',$album->id], 'method' => 'delete','id'=>'delete_form']) !!}
<button class="btn btn-danger" id="delete">Delete</button>
<script type="text/javascript">
$('button#delete').on('click', function(e){
e.preventDefault();
swal({
title : "Are you sure?",
text : "You will not be able to recover this Album!",
type : "warning",
showCancelButton : true,
confirmButtonColor: "#DD6B55",
confirmButtonText : "Yes, delete it!",
cancelButtonText : "No, Cancel delete!",
closeOnConfirm : false,
closeOnCancel : false
},
function(isConfirm){
if(isConfirm){
swal("Deleted!","your album has been deleted", "success");
setTimeout(function() {
$("#delete_form").submit();
}, 2000); // 1 second delay
}
else{
swal("cancelled","Your album is safe", "error");
}
}
);});
</script>
{!! Form::close() !!}
</td>
</tr>
@endforeach
</tbody>
@foreach($album_名称为$album)
{{$album->album_name}
{!!Form::open(['route'=>['album.destroy',$album->id],'method'=>'delete','id'=>'delete_Form'])
删除
$('button#delete')。在('click',函数(e){
e、 预防默认值();
游泳({
标题:“你确定吗?”,
文字:“您将无法恢复此相册!”,
键入:“警告”,
showCancelButton:true,
confirmButtonColor:#DD6B55“,
confirmButtonText:“是的,删除它!”,
cancelButtonText:“否,取消删除!”,
CloseOnConfig:false,
closeOnCancel:错误
},
功能(isConfirm){
如果(我确认){
swal(“删除!”,“您的相册已删除”,“成功”);
setTimeout(函数(){
$(“#删除表格”).submit();
},2000);//延迟1秒
}
否则{
swal(“取消”、“您的相册安全”、“错误”);
}
}
);});
{!!Form::close()!!}
@endforeach
问题在于,您在一个循环中生成所有这些。每个删除按钮的ID为“#delete”,每个表单的ID为“#delete_form”,但有许多按钮和表单,每个按钮和表单的ID相同
您没有限定选择器的范围以知道实际提交哪个表单。将ID切换到类,并确保根据单击的按钮选择表单
例如,您的代码可以更改为以下内容:
@foreach($album_names as $album)
<tr>
<td>{{ $album->album_name }}</td>
<td>
{!! Form::open(['route' => ['album.destroy',$album->id], 'method' => 'delete','class'=>'delete_form']) !!}
<button class="btn btn-danger delete-btn">Delete</button>
{!! Form::close() !!}
</td>
</tr>
@endforeach
<script type="text/javascript">
$('button.delete-btn').on('click', function(e){
e.preventDefault();
var self = $(this);
swal({
title : "Are you sure?",
text : "You will not be able to recover this Album!",
type : "warning",
showCancelButton : true,
confirmButtonColor: "#DD6B55",
confirmButtonText : "Yes, delete it!",
cancelButtonText : "No, Cancel delete!",
closeOnConfirm : false,
closeOnCancel : false
},
function(isConfirm){
if(isConfirm){
swal("Deleted!","your album has been deleted", "success");
setTimeout(function() {
self.parents(".delete_form").submit();
}, 2000); //2 second delay (2000 milliseconds = 2 seconds)
}
else{
swal("cancelled","Your album is safe", "error");
}
});
});
</script>
@foreach($album\u名称为$album)
{{$album->album_name}
{!!Form::open(['route'=>['album.destroy',$album->id],'method'=>'delete','class'=>'delete_Form'])
删除
{!!Form::close()!!}
@endforeach
$('button.delete btn')。在('click',函数(e)上{
e、 预防默认值();
var self=$(这是);
游泳({
标题:“你确定吗?”,
文字:“您将无法恢复此相册!”,
键入:“警告”,
showCancelButton:true,
confirmButtonColor:#DD6B55“,
confirmButtonText:“是的,删除它!”,
cancelButtonText:“否,取消删除!”,
CloseOnConfig:false,
closeOnCancel:错误
},
功能(isConfirm){
如果(我确认){
swal(“删除!”,“您的相册已删除”,“成功”);
setTimeout(函数(){
self.parents(“.delete_form”).submit();
},2000);//2秒延迟(2000毫秒=2秒)
}
否则{
swal(“取消”、“您的相册安全”、“错误”);
}
});
});
这是未经测试的,但它应该可以帮助您开始。让我知道这是否有帮助。问题是,您在一个循环中生成所有这些。每个删除按钮的ID为“#delete”,每个表单的ID为“#delete_form”,但有许多按钮和表单,每个按钮和表单的ID相同 您没有限定选择器的范围以知道实际提交哪个表单。将ID切换到类,并确保根据单击的按钮选择表单 例如,您的代码可以更改为以下内容:
@foreach($album_names as $album)
<tr>
<td>{{ $album->album_name }}</td>
<td>
{!! Form::open(['route' => ['album.destroy',$album->id], 'method' => 'delete','class'=>'delete_form']) !!}
<button class="btn btn-danger delete-btn">Delete</button>
{!! Form::close() !!}
</td>
</tr>
@endforeach
<script type="text/javascript">
$('button.delete-btn').on('click', function(e){
e.preventDefault();
var self = $(this);
swal({
title : "Are you sure?",
text : "You will not be able to recover this Album!",
type : "warning",
showCancelButton : true,
confirmButtonColor: "#DD6B55",
confirmButtonText : "Yes, delete it!",
cancelButtonText : "No, Cancel delete!",
closeOnConfirm : false,
closeOnCancel : false
},
function(isConfirm){
if(isConfirm){
swal("Deleted!","your album has been deleted", "success");
setTimeout(function() {
self.parents(".delete_form").submit();
}, 2000); //2 second delay (2000 milliseconds = 2 seconds)
}
else{
swal("cancelled","Your album is safe", "error");
}
});
});
</script>
@foreach($album\u名称为$album)
{{$album->album_name}
{!!Form::open(['route'=>['album.destroy',$album->id],'method'=>'delete','class'=>'delete_Form'])
删除
{!!Form::close()!!}
@endforeach
$('button.delete btn')。在('click',函数(e)上{
e、 预防默认值();
var self=$(这是);
游泳({
标题:“你确定吗?”,
文字:“您将无法恢复此相册!”,
键入:“警告”,
showCancelButton:true,
confirmButtonColor:#DD6B55“,
confirmButtonText:“是的,删除它!”,
cancelButtonText:“否,取消删除!”,
CloseOnConfig:false,
closeOnCancel:错误
},
功能(isConfirm){
如果(我确认){
swal(“删除!”,“您的相册已删除”,“成功”);
setTimeout(函数(){
self.parents(“.delete_form”).submit();
},2000);//2秒延迟(2000毫秒=2秒)
}
否则{
swal(“取消”、“您的相册安全”、“错误”);
}
});
});
这是未经测试的,但它应该可以帮助您开始。如果有帮助,请告诉我。
$(“#删除表格”).submit()
是删除表单元素的内容,而不是sweetalert。表单函数很可能是罪魁祸首,而您没有提供该表单的功能性HTML或JS。事实上,问题是您在一个循环中生成了所有这些。每个删除按钮的ID为“#delete”,每个表单的ID为“#delete_form”,但有许多按钮和f