2016-05-07 3 views
0

みんな私はそれを行う方法はわかっていますが、それを行う方法がわかっていないという問題があります。どんな助けでも大歓迎です。onchange値を取得してクエリを実行し、同じページに結果を表示する

CODE:

<select id='bldg'> 
    <option value='1'>BLDG1</option> 
    <option value='2'>BLDG2</option> 
</select> 

BLGD1上のユーザーのクリックは、システムがBLDG1のすべての部屋を取得するクエリを実行し、選択入力にクエリが表示されます一度あまりに

ユーザーならば結果は次のようになります。 BLDG1をクリックする

<select id='room'> 
    <option value='101'>Room 101 - BLDG1</option> 
    <option value='102'>Room 102 - BLDG1</option> 
</select> 

ユーザがBLDG2をクリックすると、すべての部屋がROOMに表示されます。 質問:建物番号を選択/変更した後の結果照会の照会方法 その他の情報:Codeigniter HMVC; JQUERY

ありがとうございます。

+2

質問をするのを忘れました。とにかく、jQueryを使用して、変更イベントハンドラを最初の選択にアタッチします。このハンドラでは、Ajaxを呼び出してPHPページを呼び出し、データベースの検索を行い、結果を返します。 Ajax successコールバックでは、2番目のselect要素のオプションを更新します。 (私はあなたのためのコードを最初から書くつもりはありません。すでに同じことが既にオンラインであったときではありません。) – nnnnnn

+0

実際には静的なコンテンツでこれを行うことができ、Jqueryを使用しましたが、コンテンツがデータベースにある場合、これを行う方法です。 – Dennis

+0

シナリオ:ユーザーがBLDG1を選択すると、BLDG1のフラグを持つすべての部屋がページを更新/再ロードせずに選択入力に表示されます。 scenario2:ユーザーがBLDG2を選択すると、部屋の入力がBLDG2のフラグを持つデータベースからの新しい結果で変更されます。 – Dennis

答えて

0

あなたはonchange eventを探しています。ここでは良いjQueryのフリーソリューションです:

// Grab the element 
var sel = document.querySelector('#bldg'); 
// Store updated values 
var updatedVals = [ "Room 101 - BLDG1", "Room 102 - BLDG2" ]; 

// Sets an onchange event function 
// Alternative: sel.addEventListener('onchange', fn() { ... }) 
sel.onchange = function() { 
    // this.children returns a DOMNodeList, calling slice converts it to a proper array 
    var options = Array.prototype.slice.call(this.children, 0); 
    // Map/Loop over the array 
    options.map(function(option, i){ 
    // Change innerHTML of each option to the corresponding updated value 
    option.innerHTML = updatedVals[i]; 
    }); 
} 

JSFiddleでそれをチェックアウト。

+0

答えに感謝します。 残念ながら、IDが変更されると、ルームはユーザーが選択した内容に応じてコンテンツを表示または更新します。 – Dennis

+0

'' onwrite'イベントの中に入れて '' select''が変わるたびに発生します。 –

+0

はい、はいです。入力の変更を選択すると、別のクエリが実行され、ルームの内容が更新されます – Dennis

関連する問題