在 laravel 中删除确认
Posted
技术标签:
【中文标题】在 laravel 中删除确认【英文标题】:delete confirmation in laravel 【发布时间】:2016-01-04 05:59:49 【问题描述】:我有以下代码:
@foreach($results as $result)
<tr>
<td>$result->my_id</td>
<td>$result->province_name</td>
<td>$result->city_name</td>
<td>
<a class="btn btn-primary" href="route('city-edit', $result->my_id)"><i class="fa fa-edit"></i></a>
<a class="btn btn-danger" href="route('city-delete', $result->my_id)"><i class="fa fa-trash"></i></a>
</td>
</tr>
@endforeach
如何在删除每条数据时添加确认?
【问题讨论】:
只需添加onclick="return confirm('Are you sure?')"
。查看我的帖子以获得完整的答案。
【参考方案1】:
我更喜欢更简单的方法,只需添加onclick="return confirm('Are you sure?')"
,如下所示:
<a class="btn btn-danger" onclick="return confirm('Are you sure?')" href="route('city-delete', $result->my_id)"><i class="fa fa-trash"></i></a>
【讨论】:
即使这段代码更短,您也应该考虑使用事件委托并将此操作实现为Unobtrusive javascript。 如何在“”上编写脚本??是“ ?? 您在另一个单引号中使用了一对单引号,这不起作用。请将单对引号包含在双引号内,反之亦然:<a onclick="return confirm('Are you sure?')">
或 <a onclick='return confirm("Are you sure?")'>
简单有效。极好的。记住孩子们,完成胜于完美:-)
我怎样才能以这种方式使用甜蜜警报???这是甜蜜警报的网址。 link【参考方案2】:
如果这是您的链接:
<a href="#" class="delete" data-confirm="Are you sure to delete this item?">Delete</a>
使用这个 Javascript:
var deleteLinks = document.querySelectorAll('.delete');
for (var i = 0; i < deleteLinks.length; i++)
deleteLinks[i].addEventListener('click', function(event)
event.preventDefault();
var choice = confirm(this.getAttribute('data-confirm'));
if (choice)
window.location.href = this.getAttribute('href');
);
注意:<a>
需要class
中的delete
。
此解决方案使用 Unobtrusive JavaScript 并且应该适用于 IE 9 或更高版本。
【讨论】:
【参考方案3】: <a class="btn btn-danger" onclick="return myFunction();" href="route('city-delete', $result->my_id)"><i class="fa fa-trash"></i></a>
<script>
function myFunction()
if(!confirm("Are You Sure to delete this"))
event.preventDefault();
</script>
【讨论】:
这个动作可以通过事件委托不显眼地完成。请停止使用突兀的 Javascript 并停止在任何地方放置onclick
。
感谢您的信息 Peh. 如果我使用 jquery 选择器使用类 .click 事件进行同一进程
我相信你也可以用 jquery 实现同样的效果。但是您应该确保将内容和代码分开,这是通过使用data-confirm
属性而不是将确认文本硬编码到javascript中来完成的。【参考方案4】:
<a href=" route('city-delete', $result->my_id) "
class="btn btn-danger" data-method="DELETE" data-confirm="Are you sure?"> Delete</a>
使用brexis/laravel-data-method
包,您可以指定适当的HTTP 方法和确认文本。
如果您在路线文件中包含此内容,这将很有帮助:
Route::get('cities/city', 'CityController@show')->name('city-show');
Route::delete('cities/city', 'CityController@destroy')->name('city-delete');
【讨论】:
【参考方案5】:如果这是您的链接:
<a href="route('venuepropertyarea.delete', ['propertyarea' => $propertyareaname->id])" data-method="DELETE" data-confirm="Are you sure to delete this item?" class="btn btn-danger btn-xs pull-right delete"><i class="fa fa-trash"></i> </a>
路线:
Route::get('/icrm/venues/property_area/delete/propertyarea', 'VenuePropertyAreaController@deletepropertyarea')->name('venuepropertyarea.delete');
使用这个 Javascript:
var deleteLinks = document.querySelectorAll('.delete');
for (var i = 0; i < deleteLinks.length; i++)
deleteLinks[i].addEventListener('click', function(event)
event.preventDefault();
var choice = confirm(this.getAttribute('data-confirm'));
if (choice)
window.location.href = this.getAttribute('href');
);
注意:<a>
需要class
中的delete
。
此解决方案使用 Unobtrusive JavaScript 并且应该适用于 IE 9 或更高版本。
【讨论】:
【参考方案6】:index.blade.php
<form action="route('todos.destroy', $todo->Id)" method="post">
<input type="hidden" name="_method" value="DELETE">
@csrf
<button id="btnDelete"class="btn btn-danger btn-sm">Delete</button>
</form>
<script type="javascript">
document.onsubmit=function()
return confirm('Sure?');
</script>
我使用的是纯 PHP 表单,方法 DELETE 必须在提交页面操作中作为隐藏传递,所以我通过 javascript 捕获它并收到确认警报。
【讨论】:
以上是关于在 laravel 中删除确认的主要内容,如果未能解决你的问题,请参考以下文章