我试图从sqlite数据库中删除行,然后刷新页面。当我点击按钮(如下图所示)时,这一切都应该发生。
按钮:
<button type="button" class="btn btn-danger" onclick= "{{{ url("delete_item_action/$post->Id") }}}">Delete</button>
以下是应该执行sql查询删除的函数:
function delete_Post($id)
{
$sql = "delete FROM Post WHERE id = ?";
DB::delete($sql, array($id));
}
function delete_item_action($id)
{
delete_Post($id);
return View::make('social.home');
}
答案 0 :(得分:1)
这不起作用,因为onclick参数是一个javascript函数,浏览器试图执行但由于那里只有一个url,它可能会因“undefined”错误而失败。
您有多种方法可以实现您的目标:
<form action="{{{ url('your url')}}}">
<input type="submit" class="btn btn-danger">Delete</input>
</form>
(未经测试,不知道这是否有效)
<a href="{{{ url('your-url') }}}"><button>...</button></a>
<button ... onclick="window.location.href={{{ url('your-url') }}}">...</button>
答案 1 :(得分:0)
或者您可以使用jquery和ajax异步提交请求:
<script src="jquery-2.1.3.js"></script>
<script>
function delete_post( id ) {
console.log('firing delete post');
$.ajax({
url: 'delete_onclick/'+id,
method: 'post',
}).done( function( data ) {
alert(data);
});
}
</script>
<button type="button" class="btn btn-danger" onclick="delete_post(2)">Delete</button>
你的路线
Route::get('onclick', function() { return View::make('onclick'); });
Route::post('delete_onclick/{id}', function($id) {
// Post::find($id)->delete(); or something similar
return "Deleted entry";
});