0

関数がサーバーから取得するデータ:

{
   "COLUMNS":[
      "ID",
      "NAME",
      "LASTNAME"
   ],
   "DATA":[
      [
         "1",
         "John",
         "Lewis"
      ],
      [
         "2",
         "Peter",
         "Gabriel"
      ],
      [
         "3",
         "Susan",
         "Smith"
      ]
   ]
}

JavaScript

<script type="text/javascript"> 
    $(document).ready(function(){
            $('#showteams').click(function() {
                $.ajax({
        url: "authenticationService.cfc?method=getAllTeams&returnformat=JSON&queryformat=column",
        dataType: 'json',

        success:function(data) {

            alert('data that function gets from the server:' + '\n' + '\n' + data + '\n' + '\n' + 
            "everything is listed here");

                    $.each(data.DATA, function(i,team){

                        $('#teamList').append('<li><a href="#">' + team + '</a>');
                    });

                }});
            });
            $('#teams').show();
            $('#teamList').fadeIn(1200);
            $(this).attr('disabled', 'disabled');
        });
</script>

私のコードは実際に動作しますが、少なくとも何らかの方法でこのような値を出力します

1,John,Lewis
2,Peter,Gabriel
3,Susan,Smith

今、私はそれをより柔軟にし、他の方法でデータを反復処理して、たとえば表示したいと思います

これはユーザーのファーストネームです: NAME lastname: LASTNAME with number ID
すなわち
これはユーザーの firstname: John lastname: Lewis with number 1 など

for でなんとかできることはわかっていますが、整理することはできません。考えられることはすべて試しました:(特にJavaScriptが本当に私のものではないことを考えると、これについてあなたの助けを本当に感謝します.

編集:サーバー側で問題が発生しました:(私が達成しようとしているのは、最初のクリックレコードで1から10までのデータを出力し、11から20までの2番目のクリックレコードでデータを出力することです。 startrow data: { startrow: "1", maxrow: "10" } のように、coldfusion コンポーネントでは cfloop でうまくいくはずですが、何らかの理由で正しい JSON 形式を返すことができません。構造体の配列だけでなく、serializeJSONよりも配列に変換しましたが、並べ替えに失敗しました。

4

2 に答える 2

0

teamは配列です。配列表記とインデックスを使用してその値にアクセスします。team[0] team[1] team[2]ID、名、姓の場合

于 2012-10-17T21:40:05.330 に答える
0

コンテキスト内のチームには、配列である配列があります..したがって、2つのループが必要になります..1つは各アイテム配列用、もう1つは配列内のアイテム用です..これを試してください

$.each(data.DATA, function(i,team){ 
     $.each( team , function(key , value){
         alert(value)
     });         
 });

フィドル

于 2012-10-17T21:48:57.833 に答える