2017-08-10 130 views
2

我正在學習laravel,現在我試圖刪除沒有窗體的對象。 我想用js來檢測用戶何時點擊刪除按鈕並返回通知給控制器。然後帶有id的刪除對象的控制器從JS文件返回。在laravel上刪除對象

這是刀片文件

@extends ('layouts.master') 

@section ('head.title') 
Blog 
@stop 

@section ('body.content') 
    <div class="container"> 
     <div class="row"> 
      <div class="col-sm-6 col-sm-offset-3"> 
      </div> 
     </div> 

     <form class="form-show"> 
      <div class="row"> 
       <div class="col-sm-6 col-sm-offset-3"> 
        <h2> {{ $article->title}} </h2> 
        <p> {{ $article->content}} </p> 
       </div> 

       <div class="row"> 
        <div class="col-sm-6 col-sm-offset-3"> 
         <a href=" {{ route('article.edit', $article->id) }}" class="btn btn-info">Update</a> 
         <button id="delete-button" type="submit" class="btn btn-primary">Delete</button> 

        </div> 
       </div> 
      </div> 
     </form> 
    </div> 
     <script src="{{ asset('/js/jshow.js') }}"></script> 
@stop 

這是控制文件

類ArticlesController擴展控制器 { 保護$ articleModel;

public function __construct(Article $article){ 
     $this->articleModel = $article; 
    } 

    public function index(){ 
     $articles = $this->articleModel->getListArticles(); 
     // $articles = Article::paginate(10); 
     return view('articles.index',compact('articles')); 
    }  

    public function show($id){ 
     // $article = Article::find($id); 
     $article = $this->articleModel->getArticleWithID($id); 
     return view('articles.show',compact('article')); 
    } 

    public function delete($id){ 
     $this->articleModel->deleteArticle($id); 
     return redirect()->route('articles.index'); 
    } 
} 

這裏是JS文件

var deleteButton = document.getElementById("delete-button"); 
var idPost = document.getElementById("") 
deleteButton.onclick = function() { 
    alert('Click to delete'); 
    return false; 
} 
+0

這是什麼問題? – apokryfos

+0

您必須在事件處理程序中對服務器執行ajax請求。 – Jerodev

回答

1

您需要使用$.ajaxjQuery JS庫。

試着理解並做點事情,然後回來,如果你有任何困難。


Jerodev說,AJAX調用可以不用jQuery的做,但我發現jQuery的方法更容易理解。檢查here以閱讀有關使用普通JavaScript的AJAX的更多信息。 jQuery中

+1

ajax可以在沒有jQuery或其他庫的情況下完成。 – Jerodev

+0

正確,但我發現使用jQuery可以更輕鬆地進行AJAX調用。但是,是的,jQuery是可選的。 – iArcadia

+0

謝謝你的建議。我在w3school上閱讀它。 –

0

AJAX請求是,你...

先學習AJAX工作如何請求服務器。

使用jquery很容易爲你。

重拍刪除功能使其更能夠使用AJAX請求來刪除對象和響應數據。

public function delete(Request $req) 
    { 
$this->articleModel->deleteArticle($id); 
return response()->json(['msg' => 'some Msg help]); 
    } 

爲此功能製作路線。

然後讓ajax請求獲得這個路由並刪除對象並返回你所做的msg。

但您必須先學習AJAX。