• 締切済み

プルダウンのoptionについて

プルダウンにて内容を表示するために、 <option>aaa </option> のように内容を表示できますが、 aaaを変数にして表示することは可能でしょうか? 今作成しようとしているプログラムは プルダウンの内容が常に変わる仕組みとなっているので 固定でoptionに書くことができず、実現方法を考えています。 よろしくお願いします。

  • HTML
  • 回答数3
  • ありがとう数4

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>optionにvalueを定義することも可能なのでしょうか? ああ、やっぱりそうですか。 そう思ってもともとオブジェクトで定義しています (配列ですといろいろ制限がでてきますからね) var options={0:"aaa",1:"bbb",2:"ccc"}の行を var options={val_a:"aaa",val_b:"bbb",val_c:"ccc"}; として、 o.setAttribute("value",options[i])の行を o.setAttribute("value",i); にしてください また万が一、valueの値がユニークでない場合は、もうすこし こまかいオブジェクトの設定が必要になります

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

なるほど、じゃjavascriptってことでよろしいですね? ここはあくまでHTMLの部屋なので、状況が理解できませんでした こんな感じでどうでしょ <script> function addSelect(){ var sel=document.getElementById("sel"); var selectName="hoge";//selectの名前 var options={0:"aaa",1:"bbb",2:"ccc"};//オプションに追加したい項目 var c=sel.firstChild; while(c){ if(c.name==selectName) sel.removeChild(c); c=c.nextSibling; }//おまじない var e=document.createElement("select"); e.setAttribute("name",selectName); for(var i in options){ var o=document.createElement("option"); o.setAttribute("value",options[i]); o.appendChild(document.createTextNode(options[i])); e.appendChild(o); } sel.appendChild(e); } </script> <div id="sel"></div> <input type="button" value="selectを追加" onclick="addSelect()">

moonlight2455
質問者

お礼

ありがとうございます。 実現することができました。 ちなみにですが、 var options={0:"aaa",1:"bbb",2:"ccc"};//オプションに追加したい項目 を配列化で定義することは可能でしょうか? optionにvalueを定義することも可能なのでしょうか? <option value>

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>aaaを変数にして表示 ごめんなさい、状況が全く理解できません。 もうすこし具体的になにをどうしたときに、どうなってほしいのか 補足してください

moonlight2455
質問者

補足

言葉足らずですみません。 実現したいことは プルダウンの表示内容をdocument~valueにもたせて プルダウンに表示させたいのですが、可能でしょうか? 例 document~.value = "aaa" <select> <option>document~.value </select> のような形で実現できればいいのですが

関連するQ&A

  • エクセルのプルダウン

    エクセルのプルダウンについてです。 エクセルの機能でツール→入力規則→リストでプルダウン内容を入力すると プルダウンで表示できるかと思いますが、その場合、プルダウンのマークは カーソルを合わせないと表示されないようになっているかと思いますが、 そのプルダウンマークをカーソルを合わせなくても、 常に表示させたいのですが、方法を教えてください。

  • 連動プルダウンについてです。

    こんばんは。プログラム初心者です。 今、PHPとDBを使用したプログラムを組んでいます。 PHPはsmartyを使用してます。 そこで画像投稿画面を作成していまして、 DBと連動したプルダウンを作成したいのですが、 全然作れなくて困っています。 やりたいことはHTML側で元々記述してあるセレクトした値を飛ばして DB接続し、その値をそのままSQLに組み込んで 紐づいたデータをそのままプルダウンで表示させたいです。 こんな感じです↓ http://jsajax.com/NestedDropDown2Article686.aspx phpだけだとリロードしたりすることになるので、 JavaScriptを使用すると思いここに質問させていただいてます。 恐らく、JavaScriptでHTMLのvalue(値)を取得し、 別のPHP(DB接続とSQLの記述をしたもの)に値を渡して、 そこから元のPHPに戻るといったことをやればいいのでは… と思っていまして、接続、SQL用の別PHPは作成しました。 (非同期通信って云うんですかね) その際、2次元配列(配列の中は連想配列)で取得していて、 valueはその内の1つ、実際テンプレート側に 表示する文字は別の1つを表示させたいです。 SQLを流す側のPHPで配列は 【0】 [zip] [town] 【1】 [zip] [town] … といった感じの二次元配列を取ってます。 それを <option value="{$zip}">{$town}</option> みたいな形で取れた分、プルダウン作成したいです。 <option value="">選択してください</option> のプルダウン初期表示も欲しいです。 色々調べてみたんですが、 JavaScriptが難しくてhtmlの値すら取ることができず、 全然できません。どのように記述したらよろしいでしょうか? 他で使用しているため、j-queryは入れてあります。 ご教授のほど是非よろしくお願いします。

  • 2つのプルダウンを連動させる

    2つプルダウンがあったとき片方で選択した内容に応じもう一方のプルダウンの内容が 変更されるように以下のようなコードを書いてみました。 しかし、これだと1番目のプルダウンでAを選択した後、Bを選択しなおすと 2番目のプルダウンの選択肢には前回Aを選んだ時に表示されていた内容が 残ってしまいます。そこで 連動するプルダウンの内容を作成する処理(Forループの処理)の直前で  for (i=0; i<itemNum; i++) {   document.myForm.tableName.options[i] = new Option(null, null);  } という初期化処理を書いてみたのですが結果は同じでした。 解決するための何か良い方法はございますでしょうか。 <html> <head> <title>プルダウン連動サンプル</title> <script type="text/javascript"> table_name = [["10", "9", "8", "7", "6"], ["りんご", "メロン", "バナナ"], ["嵐"]]; function setMenuItem(n) { itemNum = table_name[n].length; // 項目数 //連動するプルダウンの内容を作成 for (i=0; i<itemNum; i++) { alert(table_name[n][i]); document.myForm.tableName.options[i] = new Option(table_name[n][i], table_name[n][i]); } //プルダウンの先頭を選択 document.myForm.tableName.options[0].selected = true; } </script> </head> <body onLoad="setMenuItem(0)"> <form name="myForm"> <select name="database" onChange="setMenuItem(this.selectedIndex)"> <option selected>A</option> <option>B</option> <option>C</option> </select> <select name="tableName"> </select> </form> </body> </html>

  • プルダウンメニューの選択時のリンク先について

    「プルダウンメニューから選択すると、別ページにリンク」するページを 作成したいです。 以下の様に途中まではできたのですが、 「フレームを使わず、同じウインドウの別の箇所にリンク先を表示  ※プルダウンメニューはそのまま表示」 がどうしてもできません。xmlで作成している関係上、phpも使えません。 何か方法はありませんでしょうか。 <SCRIPT LANGUAGE="JavaScript"> <!-- function menuLink(linkLoc) { if(linkLoc !="") {window.aaa.location.href=linkLoc;} } //--> </SCRIPT> <form> <SELECT onChange="menuLink(this.options[this.selectedIndex].value)"> <OPTION SELECTED>Select</OPTION> <OPTION value="">××</OPTION> <OPTION value="">●●</OPTION> </SELECT> </form>

  • プルダウンの選択リストの中に画像を埋め込む(表示する)ことはできますでしょうか

    タイトルのとおりなのですが、 プルダウンのリストは通常、テキストのリストから選択するものですが、 プルダウンの選択リストの中に画像を表示させることはできますでしょうか。 プルダウンフォームのoptionタグやCSSの背景に画像を指定したりしたのですが 表示することはできませんでした。 どなたか実現方法をご存知でしたら教えていただけないでしょうか。 よろしくお願いします!

  • テーブルのデータをプルダウンの値へ反映させたい

    現在、「ログインをした際、DBから入力したidと一致する行の複数のデータ項目を、画面上に表示させる」というプログラムを作成しています。 テーブルのデータ自体を取得・表示させるという所まではできているのですが、プルダウンで選択・入力する項目に関しては、プルダウンに反映させることができません。(プルダウンの一番上の項目のままになっています。) 実現方法を調査したところ、Strutsが有効そうであることは分かったのですが、tomcatのインストールなど環境的に難しそうであるため、phpやその他のフリーパッケージソフトなどで実現できるのであれば、そちらに挑戦したいと思っています。 何か良いアドバイスがあればお聞きしたく、また参考にできそうだサイトがありましたら是非教えてください。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • プルダウンメニューの表示について

    お世話になります。 ホームページを作成中ですが、文字の大中小に変更できるように設定したいです。 そこで見つけてきのはプルダウンメニューで、 <form name="puru"> <select name="amu" onchange="fontsize();"> <option>14pt</option> <option>12pt</option> <option selected>10pt</option> </select> </form> これを入れるというものですが、これだとプルダウンメニューの表示は10pt、12pt 14ptという表示に なってしまいます。これを利用して、プルダウンメニューの表示を大中小というふうにできないでしょうか? 回答をお願いします。

  • プルダウンで選んだページへとぶには?

    私は今ASPを使っているのですが、どうしてもできない事があります。 データベースからデータをとってプルダウンに表示し、 そのプルダウンに表示されたページへとぶには、 どのようなプログラムを書けば良いのでしょうか? 教えて頂けたら、嬉しいです。お願いします。

  • プルダウンを外部化させる

    フォームのプルダウンを使用して 都道府県一覧を作成しているのですが、 ソースが長くなってしまうのでなんとかJavaScriptで外部化出来ないかと考えております。 <select> <option>東京都</option> <option>神奈川県</option> </select> 上記の様なイメージで47都道府県分のoptionが必要となり かなりずらずらと書かなければなりません。 そこで、<option>の中身を外部のJavaScriptファイルから読み込んで表示出来ないかと思っています。 なにか良い方法をご存じの方いらっしゃいましたらご教授下さい。

  • エクセルのプルダウン機能

    現在、エクセルのプルダウン機能を使ってAのプルダウンで選択した内容によってBのプルダウンの内容を変えるという事をやろうとしています。 本当は一つのプルダウンで上記の事をやりたかったのですが、エクセルではできないのですようね? またプルダウンを常に表示させたいのですが、どのように設定すれば良いのでしょうか? 教えてください。 エクセル2013を使用しています。 よろしくお願い致します。