2016-07-07 9 views
0

ボードIDに基づいて、ボード名を取得するためのボードとカードを接続しますボードのリストを取得し、ボードIDに基づいて、各カードのボード名を取得し、どのようにわからない...TrelloのAPIは、だから私は私のボードのすべての内部で、すべてのリストからすべてのカードを持って

これは私の全機能ですが、期限付きのすべてのカードを取得しようとしているまた、各カードが入っているボードの名前を取得したい...

function getDues(listId){ 
    var xmlhttp3 = new XMLHttpRequest(); 
    var url3 = "https://api.trello.com/1/lists/"+listId+"/cards?key="+key+"&token="+token; 
    xmlhttp3.onreadystatechange = function() { 
     if(xmlhttp3.readyState == 4 && xmlhttp3.status == 200) { 
      var arrCards = JSON.parse(xmlhttp3.responseText); 
      var dueName = ""; 
      var dueDate = ""; 
      var board = ""; 
      for(c = 0; c < arrCards.length; c++){ 
       if(arrCards[c].due !== null){ 
        var dueName = arrCards[c].name; 
        var dueDate = arrCards[c].due; 
        var boardNo = arrCards[c].idBoard; 
        var date = new Date(dueDate); 
        var deadline = ""; 
        var months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 
        var now = new Date(); 
        var result = "https://api.trello.com/1/organizations/"+orgId+"/boards?key="+key+"&token="+token; 
        for (card in arrCards) { 
         if (!arrCards.hasOwnProperty(card)) { continue; } 
         var name = result.name; 
         card.boardName = name 
         console.log(card.boardName); 
        } 
       } 
      } 
     } 
    } 
    xmlhttp3.open("GET", url3, true); 
    xmlhttp3.send(); 
} 

私がボード名を取得するのは、すべて「未定義」です。

更新

私はカードを得た方法を変更し、このようにそれは動作します:あなたのコードの

function getDues(boardId) { 
    var xmlhttp3 = new XMLHttpRequest(); 
    var url3 = "https://api.trello.com/1/boards/"+boardId+"/cards?key="+key+"&token="+token; 
    xmlhttp3.onreadystatechange = function() { 
    if (xmlhttp3.readyState === 4 && xmlhttp3.status === 200) { 
     var arrCards = JSON.parse(xmlhttp3.responseText); 
     var dueName = ""; 
     var dueDate = ""; 
     var board = ""; 
     for (var c = 0; c < arrCards.length; c++) { 
     if (arrCards[c].due !== null) { 
      var dueName = arrCards[c].name; // due card name 
      var dueDate = arrCards[c].due; // due date 
      var boardNo = arrCards[c].idBoard; // board id 
      var date = new Date(dueDate); 
      var deadline = ""; 
      var months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 
      var now = new Date(); 

      var xmlhttpBoardName = new XMLHttpRequest(); 
      var boardNameUrl = "https://api.trello.com/1/boards/" + boardNo + "/?key=" + key + "&token=" + token; 

      xmlhttpBoardName.onreadystatechange = function() { 
      if (xmlhttpBoardName.readyState === 4 && xmlhttpBoardName.status === 200) { 
       var board = JSON.parse(xmlhttpBoardName.responseText); 
       var boardName = board.name; // board name 
      } 
      } 

      xmlhttpBoardName.open("GET", boardNameUrl, true); 
      xmlhttpBoardName.send(); 
     } 
     } 
    } 
    } 

    xmlhttp3.open("GET", url3, true); 
    xmlhttp3.send(); 
} 

答えて

1

ベイシングは、このようなものは動作するはずです:

function getDues(listId) { 
    var xmlhttp3 = new XMLHttpRequest(); 
    var url3 = "https://api.trello.com/1/lists/"+listId+"/cards?key="+key+"&token="+token; 
    xmlhttp3.onreadystatechange = function() { 
    if (xmlhttp3.readyState === 4 && xmlhttp3.status === 200) { 
     var arrCards = JSON.parse(xmlhttp3.responseText); 
     var dueName = ""; 
     var dueDate = ""; 
     var board = ""; 
     for (var c = 0; c < arrCards.length; c++) { 
     if (arrCards[c].due !== null) { 
      var dueName = arrCards[c].name; 
      var dueDate = arrCards[c].due; 
      var boardNo = arrCards[c].idBoard; 
      var date = new Date(dueDate); 
      var deadline = ""; 
      var months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 
      var now = new Date(); 

      var xmlhttpBoardName = new XMLHttpRequest(); 
      var boardNameUrl = "https://api.trello.com/1/boards/" + boardNo + "/?key=" + key + "&token=" + token; 

      xmlhttpBoardName.onreadystatechange = function() { 
      if (xmlhttpBoardName.readyState === 4 && xmlhttpBoardName.status === 200) { 
       var board = JSON.parse(xmlhttpBoardName.responseText); 
       var boardName = board.name; // HERE YOU HAVE YOUR BOARD NAME 
       console.log(boardName); 
      } 
      } 

      xmlhttpBoardName.open("GET", boardNameUrl, true); 
      xmlhttpBoardName.send(); 
     } 
     } 
    } 
    } 

    xmlhttp3.open("GET", url3, true); 
    xmlhttp3.send(); 
} 

をとにかく、official libraryを使用することをお勧めします。すべてのhttp要求を処理する必要はありません。

+0

カードをリストからボードに取り込む方法を変更するだけで問題ありません。ありがとう! – jimmyLi

関連する問題