2015-04-15 115 views
0

我試圖從sqlite數據庫中刪除行,然後刷新頁面。這應該都發生在我點擊按鈕(如下圖所示)時。使用按鈕從Laravel數據庫中刪除使用按鈕

按鈕:

<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函數,該瀏覽器嘗試要執行,但由於只有一個網址,它可能會失敗,並出現「未定義」錯誤。

你有多種方式來實現你想要的:

  1. 做一個形式

<form action="{{{ url('your url')}}}"> 
 
     <input type="submit" class="btn btn-danger">Delete</input> 
 
</form>

  • 做一個錨
  • (這不是測試,不知道是否這將工作)

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

  • 調用JavaScript功能這改變了當前位置
  • <button ... onclick="window.location.href={{{ url('your-url') }}}">...</button>

    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"; 
    });