前提・実現したいこと
現在LaravelでCRUDを製作しています。
そこで削除や新規作成といった項目をページ遷移せずにモーダルで行いたいと考えました。
しかし、ボタンをクリックしてモーダルが出ることころまでは行けたのですが、削除する項目がDBの一番最後の値になってしまっています。
どのようにすればボタンに値を持たせ、それをモーダルに値を渡せますか?
該当のソースコード
php
1<!--top.blade.php--> 2 3@extends('layouts.app') 4 5@section('content') 6<!doctype html> 7<html lang="ja"> 8 <head> 9 <title>TOP</title> 10 <meta charset="utf-8"> 11 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 12 <meta name="viewport" content="width=device-width, initial-scale=1"> 13 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous"> 14 <title>Top</title> 15 16 <!-- Fonts --> 17 <link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css"> 18 </head> 19 <h1>ブログ一覧</h1> 20 21 @foreach ($articles as $article) 22 <div class="card mb-2"> 23 <div class="card-body"> 24 <h4 class="card-title">{{ $article->title }}</h4> 25 <h6 class="card-subtitle mb-2 text-muted">{{ $article->updated_at }}</h6> 26 <p class="card-text">{{ $article->body }}</p> 27 <!--ここで現在Valueでidを取ってきて受け渡そうとしている--> 28 <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#deleteModal" value="{{ $article->id }}">削除</button> 29 </div> 30 </div> 31 @endforeach 32 <!--DeleteModal--> 33 <div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteModalLabel" aria-hidden="true"> 34 <div class="modal-dialog" role="document"> 35 <div class="modal-content"> 36 <div class="modal-header"> 37 <h5 class="modal-title" id="deleteModalLabel">DeleteConfirmation</h5> 38 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 39 <span aria-hidden="true">×</span> 40 </button> 41 </div> 42 <div class="modal-body"> 43 <form method="post" action="/delete"> 44 {{ csrf_field() }} 45<!--ここでIDを受け取ってどのカラムかを判断している。--> 46 <input type="hidden" class="form-control" name="id" value="{{ $article->id }}"> 47 <div class="form-group"> 48 <label for="titleInput">Title</label> 49 <input type="text" readonly class="form-control" id="titleInput" name="title" value="{{ $article->title }}"> 50 </div> 51 <div class="form-group"> 52 <label for="bodyInput">Body</label> 53 <textarea readonly class="form-control" id="bodyInput" rows="3" name="body">{{ $article->body }}</textarea> 54 </div> 55 </form> 56 </div> 57 <div class="modal-footer"> 58 <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> 59 <button type="button" class="btn btn-primary">Delete</button> 60 </div> 61 </div> 62 </div> 63 </div> 64<!-- CreateModal --> 65 66 67 68</html> 69@endsection 70
変更後コード
@extends('layouts.app') @section('content') <!doctype html> <html lang="ja"> <head> <title>TOP</title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous"> <title>Top</title> 変更点 <script type="text/javascript"> $(function(){ $(".delete_btn").on("click",function(){ $("#delete_id").val($(this).val()); }); }); </script> <!-- Fonts --> <link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css"> </head> <h1>ブログ一覧</h1> @foreach ($articles as $article) <div class="card mb-2"> <div class="card-body"> <h4 class="card-title">{{ $article->title }}</h4> <h6 class="card-subtitle mb-2 text-muted">{{ $article->updated_at }}</h6> <p class="card-text">{{ $article->body }}</p> 変更点 <button type="button" class="btn btn-primary delete_btn" data-toggle="modal" data-target="#deleteModal" value="{{ $article->id }}">削除</button> </div> </div> @endforeach <!--DeleteModal--> <div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="deleteModalLabel">DeleteConfirmation</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form method="post" action="/delete"> {{ csrf_field() }} 変更点 <input type="hidden" class="form-control" name="id" value="" id="delete_id"> <div class="form-group"> <label for="titleInput">Title</label> <input type="hidden" class="form-control" name="id" value="{{ $article->title }}"> </div> <div class="form-group"> <label for="bodyInput">Body</label> <textarea readonly class="form-control" id="bodyInput" rows="3" name="body">{{ $article->body }}</textarea> </div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary">Delete</button> </div> </div> </div> </div> <!-- CreateModal --> </html> @endsection
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/03 02:23
2018/07/03 02:43
2018/07/03 02:55
2018/07/03 02:57
2018/07/03 03:08
2018/07/03 03:10
2018/07/03 03:16
2018/07/03 03:50
2018/07/03 03:59
2018/07/03 04:08