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

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

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

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

3回答

8251閲覧

foreachによる都道府県のプルダウンで初期値を設定したい

gobindar

総合スコア51

PHP

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/02/22 05:39

お世話になっております。
当方Laravel5.5にてWebSiteを構築しております、
環境はmac OS Mojave10.14.2
ブラウザはGoogle Chrome バージョン: 71.0.3578.98になります。

非常に初歩的な質問なので、
ググればヒントが出てくるかと思いましたが、
どうしても探しきれなかったので、
大変恐縮ですがご質問させて下さい。

やりたいこと

①モデルにてデータベースから都道府県の一覧を取得
②コントローラにてモデルを呼び出し、ビューに渡す
③ビューにてforeach文を使用して、都道府県の一覧をプルダウンメニューで表示
④表示の際、初期値を「東京都」に設定する

現状

optionでは、「selected」を使用すれば、
初期値が設定できることはわかっているのですが、
foreach文の中なので、何を設定すればよいか
わかりません。

viewの記述部分

php

1 <select name='pref' value="{{ old('pref') }}" required> 2 @foreach($data->pref as $pref_id => $pref_name) 3 <option value="{{$pref_id}}" selected="ここがわかりません">{{$pref_name}}</option> 4 @endforeach 5 </select>

宜しくお願い致します。

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

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

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

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

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

guest

回答3

0

ベストアンサー

php

1<select name='pref' required> 2 @foreach($data->pref as $pref_id => $pref_name) 3 @if(old('pref') == $pref_id) 4 <option value="{{$pref_id}}" selected="selected">{{$pref_name}</option> 5 @else 6 <option value="{{$pref_id}}">{{$pref_name}</option> 7 @endif 8 @endforeach 9</select>

laravelcollective/html をつかえば、

php

1{!! Form::select('pref', $data->pref, old('pref'), ['required' => true]) !!}

投稿2019/02/22 05:50

編集2019/02/22 05:54
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

gobindar

2019/02/22 05:58

Kosuke_Shibuya様 ご回答ありがとうございます。 Laravelcollectiveを導入していましたので、 ご記載の記述でスマートに実装できましたが、 ご質問の意図は、「old値を表示したい」ということ ではなく、「old値がない場合は初期値を東京都にしたい」 ということでした。 そもそもold値を正しく表示すること自体できていない コーディングであったために、混乱を招いてしまいました、 申し訳ありません。 もし可能でしたら、ご記載頂きましたlaravel collectiveの記述で、 oldinputがない場合に東京都とする方法をご教示 頂けないでしょうか。 ちなみに、 data配列の中身は、 1 => "北海道" 2 => "青森" … 10 => "東京" という形になっております。
退会済みユーザー

退会済みユーザー

2019/02/22 06:01 編集

普通東京は13じゃないの?←まあ、いいけど old('pref', 10) にすればOK
xenbeat

2019/02/22 06:02

まさかの10w
退会済みユーザー

退会済みユーザー

2019/02/22 06:04

@xenbeat 行政コードを使わないと、あとあと発狂しそうですよね…
gobindar

2019/02/22 06:05

Kosuke_Shibuya様 迅速なご回答ありがとうございます。 ネット上から引っ張ってきたデータが、 東京の後に栃木などが来る順番になっていました。 お陰様で気づくことができました、 助かりました、ありがとうございます。
gobindar

2019/02/22 06:07

下記ファイルの頭2ケタですね。 こういったものを使用しなければ管理が しにくくなるということも学べました。。。 重ねてお礼申し上げます。 http://www.soumu.go.jp/denshijiti/code.html 「都道府県コード及び市区町村コード」
退会済みユーザー

退会済みユーザー

2019/02/22 06:08

そうです!
guest

0

<select name='pref' value="{{ old('pref') }}" required>

まずselectにvalue属性はありません。value属性を持つのはoptionです。

次のようにすればどうでしょうか。

<select name='pref' required> @foreach($data->pref as $pref_id => $pref_name) <option value="{{$pref_id}}" @if(old('pref', '10') == $pref_id) selected="selected" @endif>{{$pref_name}}</option> @endforeach </select>

投稿2019/02/22 05:48

編集2019/02/22 06:00
xenbeat

総合スコア4258

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

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

gobindar

2019/02/22 05:59

xenbeat様 ご回答ありがとうございます。 ご質問の意図は、「old値を表示したい」ということ ではなく、「old値がない場合は初期値を東京都にしたい」 ということでした。 そもそもold値を正しく表示すること自体できていない コーディングであったために、混乱を招いてしまいました、 申し訳ありません。 もし可能でしたら、ご記載頂きましたlaravel collectiveの記述で、 oldinputがない場合に東京都とする方法をご教示 頂けないでしょうか。 ちなみに、 data配列の中身は、 1 => "北海道" 2 => "青森" … 10 => "東京" という形になっております。
xenbeat

2019/02/22 06:00

追記しました
guest

0

PHP

1 @foreach($data->pref as $pref_id => $pref_name) 2 @if (条件) 3 <option value="{{$pref_id}}" selected="selected">{{$pref_name}}</option> 4 @else 5 <option value="{{$pref_id}}">{{$pref_name}}</option> 6 @endif 7 @endforeach

的な?

投稿2019/02/22 05:44

kunai

総合スコア5405

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

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

gobindar

2019/02/22 05:59

kunai様 ご回答ありがとうございます。 ご質問の意図は、「old値を表示したい」ということ ではなく、「old値がない場合は初期値を東京都にしたい」 ということでした。 そもそもold値を正しく表示すること自体できていない コーディングであったために、混乱を招いてしまいました、 申し訳ありません。 もし可能でしたら、ご記載頂きましたlaravel collectiveの記述で、 oldinputがない場合に東京都とする方法をご教示 頂けないでしょうか。 ちなみに、 data配列の中身は、 1 => "北海道" 2 => "青森" … 10 => "東京" という形になっております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問