1

MySQL データベースからデータを取得し、JSON を出力する関数があります。結果の例を次に示します。

{"success":"true","message":"Data loaded","data":{"11":{"id":"11","timestamp2":1349091206,"timestamp":" 1. oktober kl. 13:33","date_from":"25. oktober kl. 8:45","date_to":"25. oktober kl. 8:45","initials":"rt","trafikselskab":"Sydtrafik","alarm_comment":"sr6yer6y","transport_comment":"et6et7","vogn_comment":"uet7uet7","events_comment":"rt7ujrt7ury7u","system_comment":"urt7j","other_comment":"ry8kykytik"},"10":{"id":"10","timestamp2":1349091195,"timestamp":" 1. oktober kl. 13:33","date_from":" 1. oktober kl. 1:40","date_to":" 1. oktober kl. 1:40","initials":"rt","trafikselskab":"Sydtrafik","alarm_comment":"sr6yer6y","transport_comment":"et6et7","vogn_comment":"uet7uet7","events_comment":"rt7ujrt7ury7u","system_comment":"urt7j","other_comment":"ry8kykytik"},"9":{"id":"9","timestamp2":1349089753,"timestamp":" 1. oktober kl. 13:09","date_from":"25. oktober kl. 8:15","date_to":"25. oktober kl. 14:15","initials":"PSH","trafikselskab":"Midttrafik","alarm_comment":"ftyhdrtyh","transport_comment":"dtyjtr7j","vogn_comment":"rtyujkytik","events_comment":"yuilyiol","system_comment":"tuikul","other_comment":"yuolyu9lio"},"8":{"id":"8","timestamp2":1348230434,"timestamp":"21. september kl. 14:27","date_from":"27. september kl. 8:30","date_to":"21. september kl. 8:30","initials":"PSH","trafikselskab":"Movia","alarm_comment":"srtyh","transport_comment":"dyh","vogn_comment":"dtyjhdtyj","events_comment":"teyhtryj","system_comment":"dtyhteyj","other_comment":"trydjrtyuj"}}}

JSON からデータを取得して HTML タグに入れる JS 関数があります。

function overlevering() {
$.getJSON('/test/ajax2.php?type=test', function(data) {
    if(data.data != '') {
        $.each(data.data, function(fravaer, type) {
                $('#overlevering').append('<article id="'+ type.timestamp2 +'"><h2>Modtaget '+ type.timestamp +'</h2><p class="from">Periode: '+ type.date_from +' - '+ type.date_to +'</p><p class="from">Fra '+ type.initials +', '+ type.trafikselskab +'</p><h3>Alarmer, der kræver særlig opmærksomhed</h3><p>'+type.alarm_comment+'</p><h3>Information vedr. teletaxer, flexture og handicapture</h3><p>'+type.transport_comment+'</p><h3>Information vedr. vogne, vognmænd og centraler</h3><p>'+type.vogn_comment+'</p><h3>Information vedr. systemer</h3><p>'+type.system_comment+'</p><h3>Information vedr. begivenheder, der kan påvirke driften</h3><p>'+type.events_comment+'</p><h3>Øvrige</h3><p>'+type.other_comment+'</p></article>');

        });
    }
});
}

Safari で結果ページにアクセスすると、結果は JSON のまま (日付順) に並べ替えられます。ただし、Chrome では、ルールの後にソートされていないようで、そこにスローされているだけです。

JSON でソートすることはできないと思います。どうすればこれを回避し、常に最新のものを一番上に表示できますか?

4

2 に答える 2

0

実際には、JSON配列を並べ替えることができます。基本的には、取得すると単なるjavascriptオブジェクトになります。

次に例を示します。JSONを値で並べ替える

于 2012-10-01T12:32:11.673 に答える
0

ああ、私はそれを理解しました。JS の sort() メソッドを使用して、getJSON の後にデータを並べ替えています。

    var articles = $("#overlevering article");

        articles.sort(function(a,b) {
        if (a.id < b.id) return 1;
        else if (a.id > b.id) return -1;
        else return 0
    })

    $("#overlevering").empty().append( articles );
于 2012-10-01T13:35:49.640 に答える