Usa*_*lal 5 javascript php laravel laravel-8
我正在 laravel 8 中使用资源控制器,我想通过删除按钮点击它的删除方法。如何使用 method='delete' 创建一个按钮。我必须在 JavaScript 中创建它,因为按钮位于表中,并且我已经使用 JS 创建了该表。
我的编辑按钮是这样的:
<a href='"+base_url+"/donner/"+user['donner_id']+"/edit'><button class='btn btn-sm btn-outline-warning'><i class='fa-solid fa-pen-to-square'></i> Edit</button></a>
Run Code Online (Sandbox Code Playgroud)
对于删除按钮,我必须使用删除方法发送请求。表单按钮或锚标记。
看看下面的示例代码。它向您展示了步骤是什么。给按钮绑定一个js触发器。然后使用 fetch 或 axios 或whatEverToMakeJSApiCalls。
注意我确信下一个问题将会出现。CSRF, etc
<button
class=""
onclick="deleteSomething( {{$id}} )">
</button>
Run Code Online (Sandbox Code Playgroud)
function deleteSomething(id) {
fetch('/api/deleteModelName/' + id, {
method: 'DELETE'
})
}
Run Code Online (Sandbox Code Playgroud)
无法直接从纯 HTML 发送 DELETE 请求。您可以使用 JavaScript 发送 DELETE 请求,或者某些框架支持将该方法作为 POST 请求正文中的参数传递。
<form action="/delete" method="POST">
<input type="hidden" name="_method" value="DELETE" />
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="submit" value="Delete">
</form>
Run Code Online (Sandbox Code Playgroud)
该技术使用的表单的唯一可见输入是按钮。单击该按钮时,它会提交表单,并向服务器发送 POST 请求。然后,服务器检测“_method”字段并将其视为 DELETE 请求。
您可以在Laravel 文档中了解有关方法欺骗的更多信息。