使用按钮从Laravel数据库中删除

时间:2015-04-15 06:27:43

标签: php sqlite laravel

我试图从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');
}

2 个答案:

答案 0 :(得分:1)

这不起作用,因为onclick参数是一个javascript函数,浏览器试图执行但由于那里只有一个url,它可能会因“undefined”错误而失败。

您有多种方法可以实现您的目标:

  1. 制作表格
  2. <form action="{{{ url('your url')}}}">
            <input type="submit" class="btn btn-danger">Delete</input>
    </form>

    1. 制作一个锚
    2. (未经测试,不知道这是否有效)

      <a href="{{{ url('your-url') }}}"><button>...</button></a>

      1. 调用更改当前位置的javascript函数
      2. <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";
});