2017-02-27 68 views
0

在我的ajax調用中,我想將每個key作爲<td>分配給$('#shelf .table thead tr')中的單個行。這是我嘗試失敗的原因。將ajax數據val分配給表頭

AJAX:

function ajax_call($aff){ 
    $.ajax({          
     url: 'fill_crosstab.php',       
     data: {action:$aff},            
     dataType: 'json',     
     success: function(data){ 
      $('#shelf .table tbody').empty(); 

      $('#shelf .table thead tr').empty(); 
      for (var i = 0; i < key.length; i++) { 
       out += "<td>" + key[i] + "</td>"; 
      } 
      $('#shelf .table thead tr').append(out + "</tr>"); 

      if ($aff == "database") { 
       $.each(data, function(key, val) { 
        $('.dropdown-menu').append("<a class='dropdown-item' href='#'>" + val.Affiliation + "</a>"); 
       }); 
        // Bind the event now, after the html element has bend created. 
       $(".dropdown-menu a").on("click", function() { 
        var selText = $(this).text(); 
        $('.shelf-header').empty(); 
        $('.shelf-header').append(selText); 
        ajax_call(selText); 
       }); 
      } else { 
       $.each(data, function(key, val) { 
        $('#shelf .table tbody').append("<tr><td>" + val.LAST + "</td><td>" + val.FIRST + "</td><td>" + val.MDC + "</td><td>" + val.RADIO + "</td><td>" + val.eMEDS + "</td><td>" + val.FireApp + "</td><td>" + val.P1 + "</td></tr>"); 
       }); 
      } 
     } 
    }); 
    }; 

JSON數據:

[{"LAST":"JONE","FIRST":"MARY","MDC":"07\/23\/2003","RADIO":"08\/22\/2002","eMEDS":"02\/09\/2015","FireApp":"09\/11\/2012","P1":" "}] 
+0

您能否提供一些示例數據,並且可以更具體地瞭解它如何不起作用? –

+0

添加了JSON數據 - 我正在尋找LAST,FIRST,MDC等...作爲我桌子的標題行。 – BarclayVision

+0

定義第一個for循環的鍵是哪裏?我看不到這是什麼。 –

回答

1

如果您需要在for循環創建表的標題,提取數據的密鑰,則需要使用第一排。

您還應該保留該行的鍵以確保其他行排列在相同的列中。我注意到你使用「。」將這些屬性作爲片段底部的else子句中的屬性。

開始通過獲得這些密鑰 - 把這個接近成功處理程序的頂部:

var keys = Object.keys(data[0]); 

現在你可以遍歷它創建您的第一行(把這個在THEAD部分):

for (var i = 0; i < keys.length; i++) { 
    out += "<td>" + keys[i] + "</td>"; 
} 

在其他部分,tbody中,您可以這樣做以確保其匹配。該鍵上方變量,以相同的順序,並使用該密鑰有此引用來查找值項:

$.each(data, function(_k, val) { 
    var out = "<tr>"; 
    for(var i =0; i< keys.length; i++) { 
     out += "<td>" + val[keys[i]] + "</td>"; 
    } 
    out += "</tr>"; 
    $('#shelf .table tbody').append(out); 
}); 

在這個片段在這裏 - 在「_K」是行號,我已經用一個下劃線作爲前綴,使讀者明白我們對它不感興趣。

+0

所以我把'VAR鍵= Object.keys(數據[0]);'我看你是引用'鍵'和'鍵'這是正確的? – BarclayVision

+0

我已經編輯了答案。 「key」已經變成了「_k」 - 因爲它是那些被它忽略的東西。我還說過要把第一部分放在哪裏。 –

+0

這給了我'LAST','FIRST'等的價值......不是名字'LAST'' FIRST'等 – BarclayVision