2016-04-13 16 views
2

にサブメニューを追加するためにどのように私は、このようなドロップダウンリストを持っています。このマークされたボタンのいずれかをクリックすると、サブメニューにはAJAXで取得したデータが表示されます。だから、最終的には次のようになります。 enter image description hereがクリックされたボタン

これは私のドロップダウンのコードです:

function showDetails(o){ 

      var data = {}; 
      var groupName = o; 

      data.action2='showConsistsOf'; 
      data.groupName=groupName; 
      $.ajax({ 
       url: "../includes/adapter.php", 
       type: "POST", 
       dataType: "JSON", 
       data: data, 
       async: true, 
       success: function (data) { 
        if(data){ 
         //console.log(data); 
         for(var i=0;i<data.length;i++){ 
         $('button[value=groupName]').append('<li>+data[i]+</li>'); 
         } 
        } 
        else { 

        } 
       } 
      }); 
     } 

とデータ:

<ul class="dropdown-menu"> 
       <?php 
       foreach($applications as $application){ 

       echo "<li><button type='button' style='width:100%;' value='".$application['facebook_id']."' onclick='setSession(this.value);'>".$application['app_name']."</button></li>"; 

       } ?> 
       <?php if($resultForUpperQuery){ 
       echo '<hr>'; 
       while($names=$resultForUpperQuery->fetch_assoc()){ 
       $groupname=$names['ime_grupe']; 
       echo "<li><button type='button' style='width:100%;' value='".$groupname."' onclick='showDetails(this.value);'>".$groupname."</button></li>"; 
       } 
       echo '<hr>'; 
       } 
       ?> 
       <?php if(isset($_SESSION['ap_id'])){ 
       echo ' 
       <li><a href="" data-target="#createAppGroup" data-toggle="modal">Create App Group</a></li>';}?> 
       <li><a href="app_setup.php">Add new app</a></li> 
    </ul> 

ので、各ボタンは次のようになりますonclick="showDetails(this.value)"機能を持っています検索結果は次のようになります。

["Notiflow", "Konfidence Hrvatska"] 

それで、その値はサブメニューのドロップダウンの一部でなければならない基本的な配列です。 そして、私はあなたにも、コードの上から見ることができるよう、次のようにこのサブメニューを作ってみました:私は機能を解雇したクリックボタンに<li>を追加しようとしたデータで

success: function (data) { 
    if(data){ 
     console.log(data); 
     for(var i=0;i<data.length;i++){ 
      $('button[value=groupName]').append('<li>+data[i]+</li>'); 
     } 
    } 
} 

ので、foreachの値を。しかしボタンをクリックするだけでドロップダウンが閉じます。本当にこれを解決する方法を知らない。

+0

[i]は最初のULは、メニューのためであり、あなたが必要なので、あなたはまた、ULを追加する必要があり、サブメニューとしてその中の2番目のもの。 –

+0

それでも、ボタンをクリックしただけでドロップダウン全体が閉じられました。 – Ognj3n

+0

をクリックした後、インスペクタでコンソールログに表示される内容は何ですか? –

答えて

0

このようなあなたの関数を呼び出すようにしてください:あなたはデータを追加しようとしている場合は

$(".dropdown-menu").on("click", ".button", function() {.......}); 
+0

何も起こりません。また、私はクリックされたボタンの価値を必要とするので、私はこの 'onclick = function(value)'以外の方法を使っても動作しないと思う。 – Ognj3n

+0

このようにulとliの追加を分割しようとするよりも: var li = $( '

  • '); $(ul).append(li); –

  • +0

    いいえ、ボタンをクリックするたびにメニューがシャットダウンします。 – Ognj3n

    関連する問題