2017-08-10 17 views
2

私はlaravelを学んでいますが、今はフォームなしでオブジェクトを削除しようとしています。 私はjsを使用して、ユーザーが削除のボタンをクリックしてコントローラに通知を返すことを検出したいと考えています。次に、idを持つdeleteオブジェクトを持つコントローラが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'); 
    } 
} 

そして、ここであなたがjQuery JSライブラリから$.ajaxを使用する必要が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

です。

何か問題がある場合は、何かを理解してからやり直してください。 Jerodev同様


は、AJAX呼び出しがjQueryをせずに行うことができますが、私はjQueryのメソッドは、より理解を見つける、と述べました。プレーンJavaScriptを使用してAJAXについてもっと知るにはhereをチェックしてください。 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]); 
    } 

この機能のためのルートを作成します。

このルートを取得してオブジェクトを削除し、msgを返すようにajaxリクエストを行います。

しかし、まずAJAXを学ぶ必要があります。

関連する問題