2017-08-10 131 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。