• ベストアンサー

プルダウンメニューでのイベントハンドラで悩んでます!

お世話になります。 現在、データベースより取得したデータ(学校名)を プルダウンメニューにて表示させています。 また、プルダウンが選択された際には、 onchangeイベントを使って取得IDからsubmitを行い、 学校情報を再読み込みするようにしています。 ここで問題なのが、onchangeイベントを使うと ・データベースに情報が1つだった場合 ・一度、読み込んだ学校情報を再度選択した場合 に再読み込みできない点です。 onchange以外に何か良いイベントハンドラや 対策はありますでしょうか? 他のイベントも色々試しましたが、 期待する挙動を示してくれません。 javascriptの先達の皆様ご教授よろしくお願いしますm(_ _)m

質問者が選んだベストアンサー

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

プルダウンには必ずデフォルト値をつけるのが原則でしょう <select> <option value="">選択して下さい</option> ←これ <option value="hoge">あああ</option> ・・・・ </select> onchangeにvalue=""はなにもしないという処理をいれるだけでよいです

yoroshikumail
質問者

お礼

yambejpさまご回答ありがとうございました。 以前にも助けて頂いて恐縮です。 皆様のおかげで無事に解決致しました。 本当に助かりました^^。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.5

「再読み込み」が必要な理由があるなら、 「再読み込み」とか「最新の情報に更新」とか、専用のボタンを設けた方が利用者はわかりやすいのでは。 直感的に利用できない変なインターフェースを苦労して設けるのは無駄だと思う。

yoroshikumail
質問者

お礼

steel_grayさまご回答ありがとうございました。 皆様のおかげで無事に解決致しました。 本当に助かりました^^。

全文を見る
すると、全ての回答が全文表示されます。
  • teru2008
  • ベストアンサー率0% (0/1)
回答No.4

参考URLのやり方ってどうでしょうか。 ただ、ANo.3さんのようにデフォルト値を付けないといけないみたいですね。

参考URL:
http://y7maru.bblog.jp/entry/405834/
yoroshikumail
質問者

お礼

teru2008さまご回答ありがとうございました。 皆様のおかげで無事に解決致しました。 本当に助かりました^^。

全文を見る
すると、全ての回答が全文表示されます。
  • auty
  • ベストアンサー率58% (284/486)
回答No.2

見当違いかもしれませんが、 ・ onblur属性を使うか、onchange属性と組み合わせてみたらどうでしょうか。 ・ 組み合わせる場合、   1. 初期値フラグをoffに設定。   2. onchange属性で、呼び出されたかどうかのフラグをonにし、   3. onblur属性では、フラグがoffのときのみsubmitする。終わりにフラグをoffにしておく。

yoroshikumail
質問者

お礼

autyさまご回答ありがとうございました。 皆様のおかげで無事に解決致しました。 本当に助かりました^^。

全文を見る
すると、全ての回答が全文表示されます。
  • oka5130
  • ベストアンサー率66% (35/53)
回答No.1

onchangeイベントの一番の悩みですよね。 残念ながらsubmitボタンを置く以外に方法はない気がします。 プルダウンのonchangeはそのままで、基本的にはボタンは 押されないようにしておけば操作性は変わりません。 UI的にはボタンが一つ増えてしまいますが。。 ボタンにスタイルを指定して、幅を少し狭めておくというのはいかがでしょう。

yoroshikumail
質問者

お礼

oka5130さまご回答ありがとうございました。 皆様のおかげで無事に解決致しました。 本当に助かりました^^。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プルダウンメニューで値を渡したいのですが

    すみません。今phpとhtmlであるサイトを作っているのですが プルダウンメニューを選択した後、ボタンを押すことなく選択した途端ページ移動 して、値を持って行きたいのですがjavascriptはまったく知らないためやり方がわかりません。 いろいろググってそれらしいスクリプトを見つけたのですが以下だとまったく動的に反応しません。 (ページも移動しません) 最終的にpost[ffa]に値であるniやameなどを入れたいのですがどこをどういじれば良いでしょうか・・。 <form name="ffa" method="post" action="abc.php"> <script type="text/javascript"> <select name="sel1" onChange="document.forms['ffa'].submit()" > <option value="ni">日本</option> <option value="ame">アメリカ</option> <option value="igi">イギリス</option> <option value="su">スウェーデン</option> </select> </script>

  • 即時関数とイベントハンドラについて

    javascriptは全体を即時関数で囲って、変数の有効範囲を制限したほうが良いということを知りました。しかしスクリプト全体を囲ってしまうと、関数にもアクセスできなくなってしまいます。イベントハンドラで外部から関数を使用したい場合は、全体を囲うべきではないということでしょうか。 もし対処方法がありましたら、教えてくださると助かります。

  • PHP プルダウンを選んだ瞬間に処理開始

    PHPで、フォームのプルダウンを選んだ時、たとえば、「1月」を選んだ時に処理を開始し、選択されている1月のデータだけをデータベースからとってきて表示したいです。 <input type="submit" ~> の送信ボタンで送信するわけではなく、プルダウンを選んだ瞬間に処理開始したいので、$_POST[]では取得できませんでした。 PHPでプルダウンを選んだ瞬間にプルダウンのデータを送信する方法があれば教えてください。 PHPは現在勉強中の超初心者、javascriptはjQueryなら少々書ける程度です。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • イベントハンドラを外部ファイルに分離させた時のevent.target

    イベントハンドラを外部ファイルに分離させた時のevent.target||event.srcElementの挙動について質問です。お願いします。xhtmlの<div>に直接書いていたeventハンドラを外部に分離しました。 JavaScript ------------------------------ function Test() { var n = document.getElementsByTagName('div')[0]; n.onmouseover = function() { var m = event.target||event.srcElement; var j = m.tagName; alert(j); } } $(function() { Test(); }); ------------------------------ xhtml ------------------------------ <div> <p><img src="img01.png" width="300" height="300" /></p> </div> ------------------------------ n.onmouseover後のfunction()ですが、FireFoxで動きません。 function()をfunction(event)にするとFireFoxで動くようになりますが、IEで動かなくなります。 FireFox、IE両方動くようにするにはどういう記述にしたらいいでしょうか?

  • onchange等のイベントハンドラによる同一ページへのPOSTについて

    あるWebページ内のセレクトボックス1,2があるとします。 セレクトボックス1に対して、onchangeイベントハンドラを設けて セレクトボックス1の内容が変更されれば、リロードし 同一ページへセレクトボックス1の内容をPOSTし、 その受け取った内容でセレクトボックス2の内容を 可変したいのですが、具体的にJavascriptからPOST変数への 受け渡し方はどのようになるのでしょうか? WebページはPHPにて構築しています。 すみませんがご存じでしたらどなたか教えてください。

  • プルダウン 値保持 onchange

    失礼します、現在年月のプルダウンを作成しており プルダウン自体は年月の作成ができなのですが再読み込みした際に プルダウンに選択した値を保持して欲しいです。 現在リダイレクト先を自身にしております。また、onChangeでプルダウンをした際に読み込むようにしています。 ご教授頂きたいです。宜しくお願い致します。 htmlに埋め込んでいるので読みにくいかと思いますがご了承ください <form action="<?php $self ?>" method="POST"> <select name = "year" onChange="javascript:submit()"> <?php for ($y = 2000; $y < date(Y)+1; $y++) :?> <?php if($s == 0) : ?> <option value="<?php echo $y ?>">選択してください</option>; <?php ++$s ?> <?php endif; ?> <option value="<?php echo $y ?>"><?php echo $y ?></option> <?php endfor; ?> </select> <?php $a = array('1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'); ?> <select name = "month" onChange="javascript:submit()"> <?php foreach ($a as $key => $value) :?> <?php $b = $key + 1 ?> <?php if($h == 0) : ?> <option value="<?php echo $y ?>">選択してください</option> <?php ++$h ?> <?php endif; ?> <option value="<?php echo $b ?>"><?php echo $value ?></option> <?php endforeach; ?> </select> </form>

    • ベストアンサー
    • PHP
  • プルダウンリストを作りMySQLからデータを取得してonchangeする方法

    http://oshiete1.goo.ne.jp/oshiete_new.php3 のように、 プルダウンリストを作りMySQLからデータを取得してonchangeする方法を教えていただけませんか? 技術者向コンピューター ↓*onchangeでデータベースから取得? プログラミング ↓ JavaScript 具体的にやりたいことは、 お店の住所を登録してもらうスクリプトを作りたいと考えています。 そのため、 北海道 ↓ 札幌市 ↓ ○○・・・ のように、都道府県を選ぶとonchangeで市区町村が表示されていく、というようなものを造りたいと考えています。 スクリプトの検索ページで、『北海道』などで検索をかけるつもりですので、データベース(MySQL)に格納したいと思っています。 ざっくりした質問で申し訳ないですが、参考になるページでも結構ですので、教えていただけたらうれしいです。 よろしくお願いします。

  • ロード中にプルダウンを変更付加にしたい(IE6)

    プルダウン(<select>)のonchangeイベントに処理を仕込んだ画面があります。 この画面がロードされる途中でユーザがプルダウンの値を変更するとonchangeイベントに仕込んだ処理が正しく動作しないので、画面がロードされるまでプルダウンは触れないように制御したいと思っています。 onchangeイベント処理の中でロード中かどうかを判定し、ロード中なら処理を行わないようにするだけだとプルダウンの値が変更されたままとなってしまうのでデフォルト選択項目に選択しなおす処理まで行う必要があり、もっとスマートな方法がないものかと思案しているところです。 理想は、プルダウンをクリック・ダブルクリックしても無反応にしたいと思っています。 前提条件としては、 ・ブラウザは生きた化石のIE6 ・onchangeイベントの処理で対応する方法は採用できない。 ・ロード中にプルダウンをdisableにするような方法は採用できない。 ・メッセージを表示して変更を阻止するような実装は採用できない。 ロード中にプルダウンを触れないようにするするよい方法はないものでしょうか。 お知恵をお貸しください。

  • PHPとプルダウンメニュー

    PHPで以下のことをやりたいのですが、どうしてもうまく出来ません。経験の有る方、どうぞ宜しくお願い致します。 2つのプルダウンメニューがあり、1つ目のプルダウンメニューから選択時、選択された値に関連する項目をDBより2つ目のプルダウンメニューに登録したいのです。 ちなみにDBはOracleを使用しています。 プルダウンメニューから選択時は、どのようなイベント(?)が発生するのでしょうか? もし、PHPで出来ない場合、他にどのような方法がありますか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • selectで項目を選択した時に発生するイベント?

    こんにちは,よろしくお願いします。 教えて!の質問をする時,投稿カテゴリーを入力しますが,selectオブジェクトの項目を選択した時に,次のメニュー項目が表示されるようなページについて教えてください。 試しに,javascriptのイベントハンドラonchangeやonclickでやってみましたがうまくいきませんでした。 教えて!の投稿カテゴリーについて解説していただくか,または,selectを選択した時に発生するイベントについて教えてください。よろしくお願いします。