2016-11-23 4 views
1

バックグラウンド情報を取得するには:私はCMDBからデータを抽出し、Codeigniterフォームヘルパー "form_dropdown"によって生成されたドロップダウンに表示するphp関数 "showSystems"を持っています。したがって、ドロップダウンにはすべてのサーバーの名前が含まれています。クリックすると、他の無関係な機能のいくつかは、その特定のシステムに関するさまざまな種類の情報を示します。Javascript/PHP/Codeigniterのホバーイベント

ここで達成したいのは、ドロップダウンリストに表示されているシステムにマウスを移動すると、そのシステムの説明がリストの下のラベルに表示されることです。何も浮かされていないときは、ラベルは隠されています。

私はPHP/JavaScriptを使用して、この生成されたドロップダウンにmosehover-イベントを処理するにはどうすればよい
Dropdown: 
Server1 
Server2 <-- hover over this 
Server3 

Label --> shows Description of Server2 

:よう

何か?

編集:テクニカルセットアップと関係があるように、背景情報をいくつか追加します。受信されたデータをドロップダウンを生成

機能は、CodeIgniterのモデルで記述されている:

<?php 
echo '<select class="minipanel" id="selectminipanel" size="25" style="width: 100%" onchange="window.location = \''.site_url(CONTROLLER.'/showItem').'/\' + this.value;">'; 
     foreach($tmp as $key => $value): 
       if ($active == $key){ 
        echo '<option onmouseover="displayDescription(this)" onmouseout="hideLabel()" value="'.$key.'" server-description="'.$value[1].'" selected>'.$value[0].'</option>'; 
       } else { 
        echo '<option onmouseover="displayDescription(this)" onmouseout="hideLabel()" value="'.$key.'" server-description="'.$value[1].'">'.$value[0].'</option>'; 
       } 
     endforeach; 
echo '</select>'; 
?> 

MODULは、(モデルをロードする)ビューを介してテンプレートにロードされます。ラベルは右CodeIgniterのコールの後に定義されています。

<script language="JavaScript"> 
function displayDescription($ele) { 
      var server_data = ele.server-description; 
      document.getElementById('description').innerHTML = server_data; 
} 
function hideLabel() { 
      document.getElementById('description').innerHTML =''; 
} 
</script> 

は、なぜ関数displayDescriptionあるとhideLabelは呼ばれない:

<?php $this->load->view("V".$this->name."/vMinipanel"); ?> 
<label id="description"></label> 

スクリプトは、このテンプレートのheadセクションで書かれていますか?

+0

の場合あなたはjqueryを含めることができますし、ドロップダウンフィールドにtitle = ""タグを付けておくと簡単に利用できます。 – RJParikh

+0

Jqueryを含めることができたら、どうすればいいですか?私はちょうどそれの経験がありません。 – Fuerro

答えて

1

チェックして、コードの下に実行してください:

<a href="#" title="server 1 description">server 1</a><br> 
 
<a href="#" title="server 2 description">server 2</a><br> 
 
<a href="#" title="server 3 description">server 3</a>

+0

上記のコードをテストしてください。 @fuerro – RJParikh

+0

これはいかに簡単だったか面白い。ありがとうございました。 – Fuerro

+0

はいそれは簡単ですので、私は上記のコメントを...受け入れてくれてありがとう+1)@Fuerro – RJParikh

0

ブートストラップ

<a href="#" data-toggle="tooltip" title="server 1 description">server 1</a> 
<a href="#" data-toggle="tooltip" title="server 2 description">server 2</a> 
<a href="#" data-toggle="tooltip" title="server 3 description">server 3</a> 

を使用している場合は、単にコードのこれらの行はあなたのために正常に動作します。

+0

SOと表示出力のスニペットにこのコードを追加してください。 – RJParikh

+0

悲しいことに、私はブートストラップを使用していません。 CodeigniterのPHPフレームワークを使用したPHPとjavascriptだけです。 – Fuerro

+0

次に、動的要素を作成し、ホバーに表示してください。@fuerro – geekbro

0

トリガーの上にマウスのイベント、および詳細を表示する要素のデータ記述を使用します。

<option onmouseover="displayDescription(this)" onmouseout="hideLabel()" data-server-description="your_description" id='1'> 
Server1 
</option> 

<script> 
function displayDescription(ele) 
{ 
// You can use the data-server-description attribute to catch the description 
    var server_data = ele.data-server-description; 

    // you can also use the ID to fetch the description if not embadded in as an html attribute 
    var server_id = ele.id; 

    document.getElementById('your_label_id').innerHTML = server_data; 
} 

function hideLabel() 
{ 
    document.getElementById('your_label_id').innerHTML =''; 
} 
</script> 
+0

各オプションにパラメータを追加できるかどうかを確認してから、提案をお試しください。ありがとう! – Fuerro

+0

これですべてを設定できました。オプションタグとサーバーの説明に2つのイベントが追加されました。どのようにラベルを設定する必要がありますか?'' これで十分でしょうか? – Fuerro

+0

ラベルにIDを与え、それをどのようにキャプチャしてその内部htmlを変更するかを指定します。 '' – AnatPort

関連する問題