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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

Q&A

解決済

3回答

2079閲覧

入力可能なセレクトボックスを実装したい

madoka9393

総合スコア992

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

0グッド

1クリップ

投稿2018/07/31 05:19

実現したいこと

タイトルの通り、Webページのフォームに入力可能なセレクトボックスを実装したいと考えています。

現在はFuelPHPで「Form::select」を使用し、
テーブルから取得した値から選択するセレクトボックスで実装されています。

PHP

1<div class="form"> 2 <?php 3 $array['default'] = ''; 4 for ($count = 0; $count < count($result); $count++) { //$result:テーブルのセレクト結果 5 $array[$result[$count]["id"]] = $result[$count]["name"]; 6 } 7 $text = Input::post('company_name', !empty($model->company_name) ? $model->company_name : null); 8 $attr = array('class'=>'form-control', 'id'=>'company_name', 'required'=>'required'); 9 echo Form::select('company_name', $text, $array, $attr); 10 ?> 11</div>

このセレクトボックスを、どうにかテキスト入力を許容できるようにできないかと悩んでおります。

期待することは以下の通りです。

  • プルダウンからの選択と入力のどちらも行えるようにする
  • 選択できる値はテーブルから取得する

皆様のお知恵をお借りしたく存じます。

FuelPHPの機能だけでは難しい、他の手法の方が良い等ありましたらご教示いただきたく。
(jQueryやJavaScriptを使用すれば「入力可能なセレクトボックス」自体は実装できそうなのですが、
セレクトする値をテーブルから取得する方法については当方では調査できていません…)

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

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

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

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

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

guest

回答3

0

ベストアンサー

selectでは実装が難しいので、datalist要素を使ってみてはどうでしょうか?
https://developer.mozilla.org/ja/docs/Web/HTML/Element/datalist

投稿2018/07/31 05:38

x_x

総合スコア13749

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

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

madoka9393

2018/07/31 05:44

回答いただきましてありがとうございます。 未だ浅学の身であります故、うまいことイメージが掴めないのですが、 こちらをFuelPHPで上手いこと実装するコード例等はありませんでしょうか。
x_x

2018/07/31 05:53

独自の機能はないと思います。自前でHTMLを組み立てることになるでしょう。ヘルパーを作っている人もいるようです。 https://bm-server.net/2015/03/06/237/
madoka9393

2018/07/31 06:01

やはりそうなのですね…。 やりたいことのイメージとしてはこちらが非常に近しく思うので、 datalistをテーブルから取得した値で生成する方法やら含めて少し調べてみたいと思います。
guest

0

select要素が特定の値のときだけ、隣のinput要素が入力可能になるように組めばいいのでは?
view側のjsでなんとかなりそうな気がしますが、さすがにそういう実装をしたことはありません。

投稿2018/07/31 05:40

編集2018/07/31 05:56
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

madoka9393

2018/07/31 05:48

回答いただきましてありがとうございます。 やはりそういった手法を取るしかないですかね…。 ラジオボタンでinputとselectの表示を制御する方法等も考えましたが、 どうにか余計な要素を増やさずに実現できないかとの思いからの質問でした。 デザインやユーザビリティの観点も含め検討してみます。
guest

0

テーブルから取得した値でdatalistを作成することができましたので、
一先ずx_x様の回答をBAとさせていただきたいと思います。

引き続きいい感じのアプローチがあれば回答お待ちしています。

PHP

1<div class="hoge"> 2 <input list="data_list" id="company_name" name="company_name" /> 3 <datalist id="data_list"> 4 <?php 5 for ($count = 0; $count < count($result); $count++) { // $result:テーブルのセレクト結果 6 echo "<option index=" .$result[$count]["id"]. " value=" .$result[$count]["name"]. ">"; 7 } 8 ?> 9 </datalist> 10</div>

投稿2018/07/31 08:26

編集2018/07/31 08:28
madoka9393

総合スコア992

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問