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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

解決済

Laravel9 PHP 投稿時にcheckをつけた項目を編集画面でもcheckをつけて表示したい。

tkm0604
tkm0604

総合スコア494

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

2回答

0リアクション

1クリップ

175閲覧

投稿2022/08/09 08:36

投稿時にcheckをつけた項目だけを編集画面でもcheckをつけて表示できるようにするにはどうすれば良いでしょうか?

新規投稿画面で以下のような項目にcheckをつけました。
イメージ説明

投稿の編集画面でも同じ状態で表示したいのですが、「施工事例1」にcheckを入れたのに「施工事例2」にもcheckがついて表示されてしまいます。

イメージ説明

投稿の編集画面のviewファイルでは以下のように書いています。

PHP

<li class="info-category-list__item"> @if (!is_null($post->jirei)) <input id="example1" class="info-category-list__item--checkbox" type="checkbox" name="jirei[]" value="1" checked> @else <input id="example1" class="info-category-list__item--checkbox" type="checkbox" name="jirei[]" value="1"> @endif <label for="example1" class="info-category__item--label">施工事例1</label> </li> <li class="info-category-list__item"> @if (!is_null($post->jirei)) <input id="example2" class="info-category-list__item--checkbox" type="checkbox" name="jirei[]" value="2" checked> @else <input id="example2" class="info-category-list__item--checkbox" type="checkbox" name="jirei[]" value="2"> @endif <label for="example2" class="info-category__item--label">施工事例2</label> </li>

投稿編集のコントローラーメソッドは以下のように書いています。

PHP

public function update(Request $request, Post $post){ $oshirase=request()->input('oshirase'); $jirei_flag=request()->input('jirei-flag'); $jirei=request()->input('jirei'); $inputs = request()->validate([ 'title'=>'required|max:255', 'body'=>'required|max:1000', ]); $post->title=$request->title; $post->body=$request->body; $post->oshirase=$oshirase; $post->jirei_flag=$jirei_flag; $post->jirei=json_encode($jirei); $post->user_id=auth()->user()->id; $post->save(); return redirect('mypage/dashboard')->with('successMessage', 'お知らせの更新が完了しました。'); }

投稿の編集画面のviewファイルでdd($post); をすると以下のように情報が取得できています。
イメージ説明

「施工事例1」「施工事例2」の親カテゴリーに当たる「施工事例」('jirei_flag'カラム)はcheckをつけると”on”で渡されるので投稿の編集画面のviewファイルで以下のように書いて、編集画面でcheckの有無が取得できました。

PHP

<input id="info-1" class="item info-category-list__item--checkbox" type="checkbox" name="oshirase" @if (old('oshirase', $post->oshirase) == 'on') checked @endif>

しかし、子カテゴリー('jirei'カラム)の「施工事例1」「施工事例2」.... は今後増えていく予定なのでコントローラーでjson_encode()しております。

"jirei"カラムがnullか?の判定だと全てのname="jirei"にcheckがついてしまうのは理解できたのですが、どうすればcheckをつけた"jirei"カラムにだけchecked をつけられるでしょうか?

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/08/10 07:11

こちらの質問が他のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。