2016-05-06 5 views
1

私はajaxリクエストからエントリを取得する簡単なレポートを作成しようとしています。例えば、私はシンプルなものを出してくるしたい:ここシンプルなタイムラインをつくるJS

----------------------------------- 
Monday - May 2nd - 2016 
----------------------------------- 
Entry 1 
Description 
Date: 2016-05-02 09:45 
----------------------------------- 
Entry 2 
Description 
Date: 2016-05-02 10:55 
----------------------------------- 

----------------------------------- 
Tuesday - May 3rd - 2016 
----------------------------------- 
Entry 3 
Description 
Date: 2016-05-03 11:55 
----------------------------------- 
Entry 4 
Description 
Date: 2016-05-03 13:55 
----------------------------------- 

----------------------------------- 
Wednesday - May 4th - 2016 
----------------------------------- 
No entries to report .... 
----------------------------------- 

etc ... 

は、私がこれまでに起こってしまったもののjsfiddleです: https://jsfiddle.net/vLdn68ko/

は、私はあなたが瞬間JSと曜日を取得することができます知っているmoment().format('dddd');どのような問題を抱えているのかは、曜日別にグループ化するようにロジックをどのように機能させるのかです。それでどのように始めるべきかはかなり分かりません。誰もが考えている?

$.ajax({url:"/SomeUrlBeginninWithSlash", 
      dataType: 'json', 
      cache: false, 
      success: function (data) { 

        $.each(data.d.results, function (index, incident) { 

            $('body').append(
        "<table border='1'>"+ 
             "<TR><TD>Entry ID is"+incident.ID+"</TD></TR>"+ 
        "<TR><TD>Description: "+incident.Description+"</TD></TR>"+ 
        "<TR><TD>Date: "+incident.Date+"</TD></TR>"+ 
            "</table>"+ 
        "<br><br>" 

       ); 

           }) 
      } 
     }); 

答えて

4

あなたは、インデックスオブジェクト

var items_by_date = {}; // declare an object that will have date indexes 

data.d.results.map(function(item){ 
    var item_date = moment(item.Date).format('YYYY-MM-DD'); 
    // if the date index does not exist we need to create it 
    if(!items_by_date[item_date]) items_by_date[item_date] = [item]; 
    // else we can just push the item on that array 
    else items_by_date[item_date].push(item); 
}) 

console.log(items_by_date); 
    // now you can render how ever you need to 

https://jsfiddle.net/stevenkaspar/vLdn68ko/2/

+0

おかげスティーブン多くを使用して日付ごとの項目は、私が必要なものthatsのことができます。ここでは

は、私がこれまで持っているコードです。 )。ちょっとした質問ですが、組織化されたHTMLテーブルのデータをどうやって返すのが難しいでしょうか? –

+0

https://jsfiddle.net/stevenkaspar/vLdn68ko/14/ –

+1

あなたは本当にHTML文字列を渡すことを望んでいません。オブジェクトを変数に渡してからデータをレンダリングする方がよいでしょう。これにより、データのレンダリング方法を変更するのがはるかに簡単になります。また、データを変更する必要がある機能やその他の機能を追加してから、データを描画/レンダーする機能に再度渡すことができます –

関連する問題