Laravelで掲示板を作成しており、「記事削除」ボタンにonclickでconfirmを実装し、キャンセル時は問題ないのですが、OK時に以下のような挙動をしてしまい困っています。
- 記事が1件のみで削除するとログアウトされ、記事は削除されない
- 複数記事があるときは削除されるが、エラーが出る
以下該当コード。
Javascript
1const articleDelete = () => { 2 if (window.confirm('本当に削除しますか?')) { 3 document.articleOptions.submit(); 4 } else { 5 return false; 6 } 7}
HTML
1// ログアウトのコード 2<form name="logout" action="mypage" method="POST"> 3 @csrf 4 <button class="btn btn-outline-danger btn-sm">ログアウト</button> 5</form> 6 7 8<form name="articleOptions" method="POST"> 9 @csrf 10 ... 11 // 記事削除のコード 12 <button class="btn btn-danger btn-sm" 13 onclick="articleDelete(); return false;" formaction="delete" name="id" 14 value="{{$item->id}}">削除</button> 15</form>
エラー内容の確認とformのname周りやタイポなど見ていますが、原因がつかめません。
解決するにはどうすればいいでしょうか?
追記:記事の表示部分を掲載し直しました。
また掲載して気づいたのですが、@foreach内にformを入れているため、form name="articleOptions"が繰り返し生成されていました。これが悪さをしているのでしょうか?
HTML
1@foreach ($items as $item) 2 <div class="card my-3"> 3 <div class="card-header d-inline-flex pb-0"> 4 <h3><a href="article/id/{{ $item->id }}">{{ $item->title }}</a></h3> 5 <div class="ml-auto d-inline-flex"> 6 <form name="articleOptions" method="POST"> 7 @csrf 8 9 @if ($item->open == \App\Enums\PublicStatus::OPEN) //記事が公開されていれば非公開ボタン 10 <button class="btn btn-secondary btn-sm" formaction="close" name="id" 11 value="{{ $item->id }}">非公開にする</button> 12 @else 13 <button class="btn btn-success btn-sm" formaction="open" name="id" 14 value="{{ $item->id }}">公開する</button> 15 @endif 16 17 <button class="btn btn-primary btn-sm" formaction="edit" name="id" 18 value="{{ $item->id }}">編集</button> 19 20 <button class="btn btn-danger btn-sm" onclick="articleDelete(); return false;" formaction="delete" 21 name="id" value="{{ $item->id }}">削除</button> 22 </form> 23 </div> 24 </div> 25 </div> 26@endforeach
あなたの回答
tips
プレビュー