親子におすすめの新型プラネタリウムとは?

<最終的にやりたいこと>
・プルダウンで目的の項目を出来るだけ簡単に選択したい

<困っていること>
・一つのカテゴリーに属する項目がもの凄く多いため、プルダウン項目を選択するのに(探し出すのに)、毎回苦労しています

<前提条件>
・根本的な問題は、1カテゴリーに属する項目が多いことにあるのですが、その前提で教えてください
・サイト自体はPHPで作成していて、プルダウン表示項目は、MySQLより取得しています

<知りたいこと>
・何か良いアイデアはないでしょうか?
・例えば、プルダウン項目の先頭1文字とかを検索して、該当する項目をプルダウンとして表示させるようなことは出来ないでしょうか?
・あるいは、プルダウン項目を、縦一列ではなくて、画面一杯に表示させるとか、そんなことは出来ないでしょうか?
・項目数が多くても、選択しやすいプルダウン実装方法をご存知の方や、そんな実例を見たことがある方は、是非教えてください、

このQ&Aに関連する最新のQ&A

A 回答 (4件)

jQuery Searchable DropDown Plugin あたりを使えばいかがでしょうか?


http://jsearchdropdown.sourceforge.net/

そもそも、昔のWindowsフォームには、こういう「複合型コンボボックス」があって、大量の項目を選択できていました。
Webになって、こういう部分はユーザビリティが悪くなったのですが、Ajaxの登場で救われることが多いです。

プラグイン側でTextboxのchangeイベントを拾って、$(this).val()を送ってくるので、それを受けてjsonで返すサーバサイドメソッドが必要です。

Ajaxがらみで「選択+Dropdown」プラグインは他にもいろいろあります。
動作原理はよく似ています。<select>を直接オーバーライドするものが多いので、実装も楽かと。
http://www.jquery4u.com/plugins/10-jquery-select …
    • good
    • 2
この回答へのお礼

回答ありがとうございました。

>Ajaxがらみで「選択+Dropdown」プラグインは他にもいろいろあります
リンク先、大変参考になりましたッ!
自分でも結構探したつもりなのですが、日本語で検索したためか、なかなか思うようなページにたどり着けませんでした。
改めて、海外サイトも探すべきだ、と思いましたー

お礼日時:2012/12/02 22:08

select要素を並べる場合は、例えば、



<div id="pull_down">
<span id="selected_item">選択してください</span>
<div id="items">
<select><option>a</option><option>b</option></select>
<select><option>c</option><option>d</option></select>
</div>
</div>

として、

・<div id="items">を最初非表示にしておく。
・<span id="selected_item">がクリックした時に<div id="items">を表示する。
・<option>が選択された時に、既に選択されたものがあれば、選択解除しておく。必要に応じてname属性の解除、付加も行う。
・<span id="selected_item">のテキストを書き換える。
・<div id="items">を非表示にする。

といった感じでしょうか。
select要素を使わない場合は、上記のselect要素を作成した要素に置き換えます。サーバーに値を送る場合は、input要素を別に用意しておきます。


検索する場合ですが、全データの受信に時間がかからない範囲なら、データ取得後、JavaScriptで検索するのがいいと思います。
    • good
    • 1
この回答へのお礼

回答ありがとうございました。

質問した時点では、何から手をつけたらよいか、さっぱりだったのですが、
アドバイスのおかげで、大まかながらも幾つかの方針を立てることができました。

これから実際に、色々試していきたいと思いますー

お礼日時:2012/12/02 22:14

違う方法になりますが、プルダウンではなく、例えばここのカテゴリーの選択のようにリンクなどで画面全体を利用して項目を表示して選択するのではいかがでしょうか。


それでも表示できないくらいの項目数であるなら、まず50音で最初の一文字を選択すると、次に、その文字から始まる項目だけの一覧を表示するとか…
いっそのこと50音分のプルダウンを並べてしまうという方法もあるかも知れません。

通常のフォームでも良いですし、リンクでも、あるいはJavascriptを用いたajaxでも良さそうですが。
当然ながら、これに対応したサーバ側のphpなどによるプログラムが必要になりますが、現状でもほぼ同様のものを用意なさっていると思いますので、大きくは変わらないと思います。

この回答への補足

回答ありがとうございました。

>プルダウンではなく、例えばここのカテゴリーの選択のようにリンクなどで画面全体を利用して項目を表示して選択するのではいかがでしょうか
そうですね。この方法は思いつかなかったのですが、
プルダウン項目を見やすくするのと、効果としてはある意味同じなのかもしれません。
だけど、既にフォームで実装しているので、
出来たらそのまま使えるプルダウンで、何か良い方法がないか探してみたいと思います。
どうしてもうまくいかなかった場合には、この方法を検討してみたいと思います

>まず50音で最初の一文字を選択すると、次に、その文字から始まる項目だけの一覧を表示するとか…
別件で、似た遷移を利用したことがあるのですが、意外に使いづらかったので、
この方法は個人的に避けたいです

>いっそのこと50音分のプルダウンを並べてしまうという方法もあるかも知れません
そこまで数は多くないのですが、でも、現状の縦1列よりは見やすいかもしれないと思いました

>現状でもほぼ同様のものを用意なさっていると思いますので、大きくは変わらないと思います
アドバイスありがとうございます。確かに、選択するのに苦労すると言っても、実際には何十分もかかっているわけではないのですが、でも、可能なら少しでもイライラを解消したいと考えています

補足日時:2012/11/30 23:53
    • good
    • 1

もの凄く多いというのは、具体的にはどのくらいなのでしょうか。



現在は、select要素でプルダウンを表示しているのですか?
それならば、単にselect要素の数を増やして横に並べれば、画面一杯に表示できます。(縦のサイズはsize 属性で指定可)
その場合は、選択された時にJavaScriptで処理をする必要があります。

また、select要素を使わずに、自分でプルダウンメニューを実装するのも手です。


検索で該当する項目を表示させるのも、そこまで大変ではないと思います。

この回答への補足

回答ありがとうございます。

>もの凄く多いというのは、具体的にはどのくらいなのでしょうか。
100件近くあり、今後も増える予定です。いずれはグルーピングすると思うのですが、時期はまだ未定のため、とりあえず何か見やすくする方法はないかと思い、質問しました

>現在は、select要素でプルダウンを表示しているのですか?
はい。縦1列で

>それならば、単にselect要素の数を増やして横に並べれば、画面一杯に表示できます。(縦のサイズはsize 属性で指定可)
>その場合は、選択された時にJavaScriptで処理をする必要があります
その方法を是非教えてください!

>また、select要素を使わずに、自分でプルダウンメニューを実装するのも手です
どうやって実装するのでしょうか? コードを一から書いていくということでしょうか? 参考になるサイトや、検索キーワード等あれば、教えてくださいー

>検索で該当する項目を表示させるのも、そこまで大変ではないと思います
・イメージ的には、最初にMySQLへアクセスして、全データを取得した後、JavaScriptで何かをやる感じでしょうか?
・それとも、最初にAjax通信か何かで、最初の1文字で検索して、その後、再度、DBアクセスしてプルダウン項目を取得する感じなのでしょうか?
・あるいは、それ以外?

補足日時:2012/11/30 23:36
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル 入力規則のドロップダウンメニューについて

Excel2002
入力規則-リストでドロップダウンメニューをさくせいしました。
が、あまりにも数が多いので例えば 「H」と入力すれば Hから始まるものが選択できるようにはできないでしょうか?
VBAなどでしたら、わからないので結構です。
ドロップダウンメニュー以外にもいい方法がありましたら、教えてください!

Aベストアンサー

先頭1文字を入力する専用のセルを、どこかに作らなければなりません。
それを A1 と仮定します。
また、リストの元データが J1:J200 にあるとします。

1.K1 に 次の数式を入力して [Ctrl]+[Shift]+[Enter] し、K10までドラッグ
 コピーします。(この時点では、すべて #NUM! になります)
2.L1 に =COUNTIF(K1:K10,"<>#NUM!") と入力します。
3.入力規則(リスト)の「元の値」ボックスに、次のように入力します。
  =OFFSET($K$1,0,,$L$1)
4.セルA1に入力する先頭1文字によって、入力規則のリスト内容が変化します。

ここでは、同じ頭文字のデータが最多で10件と仮定しています。
20件の場合は、ステップ1 では K20 までコピーし、ステップ2 では K1:K20 に
します。

Qエクセルでリストから検索した時の複数候補の表示方法

エクセルでの質問です。
例えばですが、
A1 あい
A2 あいこ
A3 あかね
とセルに入力してあり、B1に“あい”と入力すると検索結果として“あい”と“あいこ”を複数候補としてリスト表示してくれて、“あか”と入力すれば“あかね”が候補表示されるものを作りたいのですが、たいした知識もないため、アイディアがうかびません。

皆様のお知恵をお貸しください。

Aベストアンサー

No1です。
>1.文字入力(2~3文字入力)をしEnterを押すと、その文字に該当する候補をドロップダウンリストで表示したい。
条件を入力するセルと入力後に条件にあったリストを表示させるセルが同じセルということでしょうか。

条件を入力するときは入力規則がかかっていない(入力規則がかかっていれば、リスト内の値しか入力できない)
入力してEnterすると、入力規則がかかる(VBAで出来そうですが)
次に、条件を入れるときは入力規則の解除を行う(別途、入力規則解除のボタンを操作する)
上記の事が難易度が高いでしょう。
こんな感じのシートはVBA駆使すれば出来そうな気がしますが?(経験はないです)
ただ、先に紹介した方法で、別シートに
  A  B
1 条件
2 表示
B1セルに、条件(例えば あ とか あい と)入れると
B2セルには入力規則があって、B2セルで指定した文字を含む値しかリストに出ない。
これには、応用が出来ると思います。No4の方の方法も同様です。
条件を入れるセルと条件にあったリストの入力規則で選択するセルが分かれますが、この方が使い易くないでしょうか。
>2.そのリストからどれを使うのかをマウスで選択する(できれば十字キー上下で選択しEnterで確定したいのですが)とそのセルに入力される。
>3.入力文字は“あい”限定ではなく文字や数字すべてに対応してほしい。
のご希望は満たしていると思います。

No1です。
>1.文字入力(2~3文字入力)をしEnterを押すと、その文字に該当する候補をドロップダウンリストで表示したい。
条件を入力するセルと入力後に条件にあったリストを表示させるセルが同じセルということでしょうか。

条件を入力するときは入力規則がかかっていない(入力規則がかかっていれば、リスト内の値しか入力できない)
入力してEnterすると、入力規則がかかる(VBAで出来そうですが)
次に、条件を入れるときは入力規則の解除を行う(別途、入力規則解除のボタンを操作する)...続きを読む

QExcel プルダウンから選択して検索

例えば、「所属リーグ」(A)+「球団名」(B)+「背番号」(C)の
3つの条件をプルダウンメニューから選ばせて、
検索結果(D)を表示する場合に、

(A)でセリーグを選んだら
(B)では、セリーグの6球団しかプルダウンメニューに
  現れないようにしたいのですが、可能でしょうか?

Aベストアンサー

名前の定義とINDIRECT関数を使えば可能です。
詳しくは下記のサイトを参照してはどうでしょうか。

連動したドロップダウンリスト-INDIRECT関数
http://www.relief.jp/itnote/archives/000822.php

Qプルダウンで選択すると隣のセルに自動で入力される方法

プルダウンで選択すると隣のセルに自動で入力される方法
エクセル2003でシート1に「会社名」と「住所」を一覧を作成。シート2でプルダウンで「会社名」を選択すると隣のセルに自動で「住所」が出るようにしたいのですが、何か良い方法(関数)はありますか。教えてください。宜しくお願いいたします。

Aベストアンサー

プルダウンで確定した値を使ってVLOOKUPで検索したら。

例えば、Sheet1のA1~B10に会社名と住所の一覧があって、
Sheet2のA1でプルダウンで会社名を選択した場合、
B2を
=VLOOKUP(A1,Sheet1!A1:B10,2,FALSE)
とすれば、会社名に対応した住所が表示されます。

QEXCELのドロップダウンリスト

いつもありがとうございます。
EXCELでドロップダウンリストを設定したのですが、こちらが考えているように動作せず困っています。

例えばリストが次のようになっているとします。
アメリカ
イギリス
ウクライナ
エチオピア
オランダ
カナダ
キプロス
クウェート
ケニア
コロンビア

テキストボックスが空の状態で三角ボタンをクリックすると先頭のアメリカからリストが表示されます。

これを、テキストボックスに "カ" と入れてドロップダウンを開くとカナダから下だけを表示させるようにしたいのですが、うまく動作しません。
そのような事を実現する方法はないのでしょうか?

もう一つ、[Alt] + ↓ を押した時に開くドロップダウンメニューにも同様に上記で設定したリストを表示させたいのですがこちらもうまく行きません。

Aベストアンサー

>テキストボックスに "カ" と入れてドロップダウンを開くとカナダから下だけを表示させるようにしたいのですが
◆入力規則による方法です
     A        B
1   アメリカ     カ
2   イギリス
3   ウクライナ
4   エチオピア
5   オランダ
6   カナダ
7   キプロス
8   クウェート
9   ケニア
10   コロンビア

■手順■
1)A1:A10 に国名リストを入力します
2)B1:B10 の範囲を指定して、メニュバーの[データ]→[入力規則]を選択します
3)「入力値の種類」を「リスト」に変更します
4)「元の値」に =INDIRECT("A"&MATCH(B1,$A$1:$A$10)+1&":A10") と入力します
5)「エラーメッセージ」の「無効なデータが入力されたらエラーメッセージを表示する」のチェックをはずす
6)B1 に「カ」を入力して、▼をクリックしてください、「カナダ」以下のリストが表示されます

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

QEXCELの機能の事で…初歩的でスミマセン

きっと探せば以前にも質問があると思うのでうが…
何を探せばいいのか分からず…
分かりやすく教えて頂けると助かります<m(__)m>

EXCELで日々入力する日報のようなものを作っています。
(職場はEXCEL2000です)
例えば…
飲食業なのですが、一つのセルに30品あるお料理の中から例えばご注文が『オレンジジュース』と入力するとします。
その都度、そのセルに『オレンジジュース』と入力するのではなく、入力セルの端のほうに▼(下矢印)のようなアイコンがあって、そこをクリックすると前もって登録した30品目がずらっと並び、そこから『オレンジジュース』をクリックするとそのセルに入力される…
と言うような事は出来ないでしょうか??

又、もし可能であればその『オレンジジュース』を選択したことにより、単価を入れるセルに『300』と単価が自動的に入力されるなど…。

そんな都合のいい事はできませんでしょうか?
説明が下手で本当にごめんなさい。
素人が3人で、あの手この手で半日頑張りましたが…ダメでした。
お力をお貸しください。

きっと探せば以前にも質問があると思うのでうが…
何を探せばいいのか分からず…
分かりやすく教えて頂けると助かります<m(__)m>

EXCELで日々入力する日報のようなものを作っています。
(職場はEXCEL2000です)
例えば…
飲食業なのですが、一つのセルに30品あるお料理の中から例えばご注文が『オレンジジュース』と入力するとします。
その都度、そのセルに『オレンジジュース』と入力するのではなく、入力セルの端のほうに▼(下矢印)のようなアイコンがあって、そこをクリックすると前もって登録した30...続きを読む

Aベストアンサー

データの入力規則と、VLOOKUP関数でできます。

A列に品目を、B列に値段を入力するとします。
(1)まず前準備として、C列に品目すべてを、D列にそれぞれの値段を書き込んでおきます。
(2)A列を選択し、メニューの「データ→入力規則」
(3)設定タブの「入力値の種類」を「リスト」に、「元の値」をC列に設定します。
これだけで、A列にカーソルを移動すると右に▼マークが表示され、それをクリックすると品目リストが表示されます。

関数はB1に
=VLOOKUP(A5,C:D,2,FALSE)
と入力し、必要なだけ下にコピーします。A列に入力された品目に応じた値段が表示されます。

Qエクセルの入力規則のプルダウンのサイズ変更

エクセルの「入力規則」のプルダウンのサイズ変更。
入力規則のプルダウンの表示は、」通常8行の表示となりますが、日付を全て表示させる方法はありませんか?

Aベストアンサー

私にも以前同じような要望がありましたが、そのときはすぐあきらめました。
今回あらためて調べてみましたが、通常メニューには無いようです。

ひとつ情報が見つかりましたので、参照URLに載せておきます。

参考URL:http://dtsman.blog12.fc2.com/blog-entry-103.html

QExcelの入力規則で2列表示したい

入力規則を使って、社員コードを入力する際に
10001 山田太郎
10002 鈴木花子
10003 佐藤大介
のように、ドロップダウンリストに「社員コード」「社員名」と2列表示させたいのです。
そして、例えば山田太郎を選択すると、セルには「10001」だけが入力されるようにしたいのですが・・・
(Accessのルックアップフィールドみたいな感じ)

[入力規則]-[リスト]で、社員コード表を選択しても、単一の列または行でなければいけませんとエラーが出ます。
かといって[入力規則]-[リスト]で範囲指定をカンマ区切りで
10001 山田太郎,10002 鈴木花子,・・・と入力しても、エラーは出ませんがドロップダウンリストから選択したときに社員コード表と社員名が一緒にセルに入力されてしまいます。

なにか良い方法はありませんでしょうか?
よろしくお願いいたします。

Aベストアンサー

番号と社員名の間にスペースが入っているなら
メニューバーから「データ」→「区切り位置」で
1「カンマやタブなど---」にチェックを入れて「次へ」
2「区切り文字」で「スペース」にチェックを入れて「次へ」
3「完了」
で番号と社員名が違う列へ分けることが出来ます。
番号のデータがA2からA4、社員名がB2からB4にあるとし
C1にリストを設定して番号を入れ、D1に社員名が反映するようにするときにはD1に
=INDEX(A2:A4,MATCH(C1,B2:B4))
と入れてやるとうまくいくと思います。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング