2010-12-13 18 views
0

OK、ここに私の問題があります。私は人々が登録できるサイト(x)に取り組んでいます。私は人々が選択するための州のドロップダウンメニューを持っています。状態の選択に基づいて、状態の選択に応じて選択する病院の別のリストがあります。あなたがハワイを選んだ場合、ハワイでは病院だけが表示され、テキサスでは表示されません。私は、チェックボックスの値に基づいて可視性を切り替える機能を持っていますが、ドロップダウンの値に対して機能するようには見えません。何かご意見は?前もって感謝します。それを解決するための業界標準の方法がより迅速またはより多く存在する場合、適切な方向へのステアリングは非常に高く評価されます。コードの最適化:jQuery、Javascript

私が使用しようとしている

:あなたを使用することができ

$(document).ready(function() 
{ $('#stateinjured').change(function() 
    { 
     $('#stateinjuredky').toggle(this.checked); 
    }); 

}); 
<select> 
<option selected="selected">Select your state</option> 
    <option id="stateinjured" >Kentucky</option> 
    <option>West Virginia</option> 
    <option>Ohio</option> 
    <option>Tennessee</option> 
    </select><br/> 
<select> 
<option style="display:none;" id="stateinjuredky" selected="selected">Choose hospital you visited</option> 
    <option>hospital1</option> 
    <option>hospital2</option> 
    <option>hospital3</option> 
    </select> 
+2

AJAXコールを使用して病院リストに記入することを検討しましたか? – DwB

+0

私はそれをする方法を知りたいですが、私はしません:/。ちょうどjのクエリを使用して始めた。プラス、このコンピュータには管理者権限がなく、私はそれにApacheをインストールできません。私はウェブサイト上でajaxをテストすることができましたが、 – dman

+1

これはデータベース駆動型でない限り、ajax呼び出しは必要ありません。それはデータベース駆動型であるべきですが、そうでなければ必要ありません。 Ajaxは非常に便利です。基本的に、HTML、テキスト、PHPなど何か別のファイルをリモート呼び出しすることができます。私はJSONを調べて '$ .ajax()'がどのように動作するかを調べるのに合計2時間を費やすことをお勧めします。もしこれが学校のプロジェクトなのであれば、ajax呼び出しに頼るのではなく、病院のjavascript配列を作ることができます。 ---私はあなたがAJAXを必要としないと言っているのは、AJAXの使い方ではなく、AJAXが何であるかを知ることが重要なためです。 – Incognito

答えて

0

あなたはそれは速いですし、あなたがそれを使用するローカルサーバを必要としない、jQueryのAJAXになっているはずです、ウェブサーバー。こっち

外観:http://api.jquery.com/category/ajax/

+0

だから、良い、jQueryの修正はありません?このカスケードドロップダウンを実行するのにAJAXに慣れ親しむのにどれくらい時間がかかりますか? – dman

+0

これをjQueryで修正したいのであれば、目の瞬きの中でAJAX関数を作成するだけで、何世代ものコーディングが終了します。 jquery.comのWebサイトを準備すると、AJAXの構文と使用法を知るためにはそれほど時間がかかりません:)試してみてください;) –

+0

ok、しかし私はそれを理解できない場合、私はあなたをバグします! :)。助けてくれてありがとう。 – dman

0

私はあなたが間違った要素でidのとスタイルを持っていると思います。また、何が選択されたのかを判断し、適切なリストを表示するためのロジックが必要です。以下のコードは、ページのロードの1つの選択ボックスが表示され、その後、選択されているものに応じて要求されたリストが表示されます:

$(document).ready(function() 
{ 
    $('#stateinjured').change(function() { 
     var selectedOption = $(this + "option:selected").val(); 
     if (selectedOption == "Kentucky") { 
      $("#stateinjuredky").css("display","block"); 
     } 
     //or you could just have the select ids be the state names, then you wouldn't need all these if...else statements 
    }); 
}); 

その後...

<select id="stateinjured"> 
    <option selected="selected">Select your state</option> 
    <option>Kentucky</option> 
    <option>West Virginia</option> 
    <option>Ohio</option> 
    <option>Tennessee</option> 
</select> 
<br/> 
<select id="stateinjuredky" style="display: none;"> 
    <option selected="selected">Choose hospital you visited</option> 
    <option>hospital1</option> 
    <option>hospital2</option> 
    <option>hospital3</option> 
</select> 
<!-- more selects for other states --> 

間違いなく、より効率的な方法があります。しかし、他の人が言っているように、これを行う。

+0

あなたは、そのうちの1つ(私が探しているAJAXを保存する)であるかもしれないということについて正しい方向に私を指摘できますか? – dman

+0

いいえ、ajaxは主に私が言及しているものです。渡されたパラメータに基づいてリストを生成する2番目のページがあります。次に、その2番目のページからデータをロードするdivなどを作成できます。 jQueryのloadステートメントを使用すると、ページフラグメントをロードし、データ配列を処理してサーバーに渡すことができます。 http://api.jquery.com/load/ – esvendsen