質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

1回答

1409閲覧

laravelで削除確認ページをつくりたい

yoheiiii

総合スコア91

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2020/12/09 07:59

環境:Windows10,XAMPP,HeidiSQL
データベース:テーブル名:syain_list カラム:shainno(社員番号),name(名前),gender(性別),postalcode(郵便番号),prefectures(都道府県),address(住所),email(email),photo(写真),gakureki(学歴),bikou(備考)
※()は内容物

イメージ説明
laravelで社員一覧を作っております。削除機能をつけたいです。
仕様は削除ボタンを押したら確認画面へ行くといった感じです。
①削除を押した行の社員番号を取ってくる
②社員番号から他のすべての情報をDBからもってくる
③ブレードで対象者の全ての情報をだして【削除しても宜しいでしょうか?】
④上記OKで対象削除

①で詰まっています。現状、どこの削除を押しても最後に登録した【222222】
が返ってきます。対象の社員番号引き出し方をご教授頂けたら幸いです。
また違う簡単なやり方があればそちらでもいいです。(確認画面必須。全項目出力)

【コントローラ】

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use App\staff; class shyainController extends Controller { public function list(Request $request) { $items = DB::select('select * from syain_list'); return view('staff_list',['items' => $items]); } public function add(Request $request) { return view('shyain_add'); } public function kakunin(Request $request) { return view('shyain_kakunin',['request' => $request]); } public function adddone(Request $request) { $data = new staff(); $data->shainno = $request->shainno; $data->name = $request->name; $data->gender = $request->gender; $data->postalcode = $request->postalcode; $data->prefectures = $request->prefectures; $data->address = $request->address; $data->email = $request->email; $data->photo = $request->photo; $data->gakureki = $request->gakureki; $data->bikou = $request->bikou; $data->save(); return view('shyain_done',['request' => $request]); } public function sakujyo(Request $request) { dd($request->shainno); $data = staff::find($request->shainno); return view('shyain_done',['data' => $data]); } }

【モデル】

<?php namespace App; use Illuminate\Database\Eloquent\Model; class staff extends Model { protected $table ="syain_list"; }

【ブレード】

<!DOCtYPE html> <html> <head> <meta charset="UTF-8"> <title>社員管理システム</title> </head> <body> <h1>社員一覧</h1> <button type="button" style="background-color:#66CCFF"><a href="/sinkitouroku">新規登録</a></button> <table border="2"> <tr> <th>社員番号</th> <th>写真</th> <th>氏名</th> <th>email</th> <th>操作</th> @foreach($items as $item) <tr> <td> <input type="hidden" name="shainno" value="{{$item->shainno}}"> {{$item->shainno}} </td> <td> {{$item->photo}} </td> <td> {{$item->name}} </td> <td> {{$item->email}} </td> <td> <button type="button" style="background-color:#66CCFF"><a href="">編集</a></button><br /> <form method="post" action="/sakujyo"> @csrf <input type = "submit" value="削除" id="{{$item->shainno}}"> </td> </tr> @endforeach </table> </form>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

そもそも、formの開閉がおかしくなっていませんか?
開始がループの中、終了がループの外にあります。

そこだけ抜き出すとこうなってます。

php

1@foreach($items as $item) 2 <form> 3@endforeach 4</form>

ブラウザに表示されたHTMLを「ソースを表示」して確認してください。
かなりネストしまくっていて、結局nameも重複しているので初めのものしか送信されなくなっているはずです。

あと、すごく気になる。

<!DOC**t**YPE html>

動作に問題ないとはいえ、やはりきちんと大文字小文字まで揃えたほうが良いかと。

投稿2020/12/09 08:07

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoheiiii

2020/12/09 09:13

ご回答ありがとうございます。 <input type="hidden" name="shainno" value="{{$item->shainno}}">を削除し </form>を中に入れましたが、nullになってしまいました。 HTMLも見てみましたが、 <input type = "submit" value="削除" id="A001S"> 上記のようにそれぞれidの値がついているので取り出せると思っているのですが。。。
yoheiiii

2020/12/10 04:04 編集

下記で出来ました。 ありがとうございました。 <form method="post" action="/sakujyo"> @csrf <input type="hidden" name="shainno" value="{{$item->shainno}}"> <input type = "submit" value="削除"> </form>
m.ts10806

2020/12/10 06:19

「確認ページ」ならURLにキー情報つけてGET(リンク)でもいいんじゃないかなぁと思いますけどね。 ただよくあるのはJavaScriptでconfirmだして非同期でサーバーにリクエスト投げる方法です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問