1

このコードは、csvファイルから情報を取得しているjson_encodeを実行しているphpファイルからデータを取得します。2番目のループ内の値の各グループの周りに親divが必要です。newDiv2でこれを試しましたが、各.fieldを.sub_rowでラップしました。

これの代わりに:

 <div class="row"> // This one happens to only have one payment
     <div class="sum_field">Total: 79.99</div>
          <div class="field">BENV5239</div> // Details of payment
          <div class="field">11111</div>
</div>
 <div class="row"> // Based on Vendor ID
     <div class="sum_field">Total: 2487.01</div> // Sums up all payments for that Vendor
     <div class="field">BENV2137</div>
     <div class="field">11111</div>
     <div class="field">BENV2137</div>
     <div class="field">111111</div>
</div>
<div class="row"></div> // Another Vendor ID

これである必要があります:

 <div class="row">
     <div class="sum_field">Total: 200.00</div>
     <div class="sub_row">  // one payment
          <div class="field">BENV5239</div> // Details of payment
          <div class="field">11111</div>
     </div>
</div>
 <div class="row">
     <div class="sum_field">Total: 2487.01</div>
  <div class="sub_row"> // each payment that has the same vendor id is in it's own div
     <div class="field">BENV2137</div> 
     <div class="field">11111</div>
 </div>
 <div class="sub_row">
     <div class="field">BENV2137</div>
     <div class="field">111111</div>
 </div>
</div>

PHPコード

 $(document).ready(function() {
 $.getJSON('WF-XML.php', function(data) {

    //JSON.stringify(data); 
    var prevCardCode = '';
    var newDiv;

    $.each(data, function(index, element) {
        if (element['CardCode'] != prevCardCode) {
            newDiv = $('<div/>').addClass('row').appendTo('#showdata');
            $('<div class="sum_field">' + 'Total: ' + element['payment_sum'] + '</div>').appendTo(newDiv);      
            }
        prevCardCode = element['CardCode'];

        $.each(element, function(key, value) {

            switch (key) {
                case 'InvKey':
                case 'PostDate':
                case 'City':
                break;

                default:
                //newDiv2 = $('<div/>').addClass('sub_row').appendTo('.row');
                $('<div class="field">' + value + '</div>').appendTo(newDiv);
                break;
                 }
             });
         });
     });
  });

JSON-これを2回ループしています。最初は合計のみを印刷します(これはSQL内で計算され、2回目は残りの情報を印刷します。最後の2つのオブジェクトが同じベンダーIDの場合-したがって、新しいベンダーごとに親divを配置し、次に個々の支払いを配置したいと思います。私のコードは、親divを持つ1つのベンダーに送信される支払いの各グループをすでにラップしていますが、できません。個々の支払いを親divでラップする方法を理解します。

 {"VendorID":"BENV5239","payment_sum":"79.99","Address":"525 Sapper St.","ZipCode":"19116"},
 {"VendorID":"BENV2137","payment_sum":"2487.01","InvPayAmnt":"108.92","Address":"340 Middle Road","ZipCode":"19037"},
 {"VendorID":"BENV2137","payment_sum":"2487.01","InvPayAmnt":"57.60","Address":"340 North Middle Road","ZipCode":"19037"}
4

1 に答える 1

1
 $(document).ready(function() {
 $.getJSON('WF-XML.php', function(data) {

//JSON.stringify(data); 
var prevCardCode = '';
var newDiv;

$.each(data, function(index, element) {
    if (element['CardCode'] != prevCardCode) {
        newDiv = $('<div/>').addClass('row').appendTo('#showdata');
        $('<div class="sum_field">' + 'Total: ' + element['payment_sum'] + '</div>').appendTo(newDiv);      
        }
    newDiv2 = $('<div/>').addClass('sub_row').appendTo(newDiv);
    prevCardCode = element['CardCode'];

    $.each(element, function(key, value) {

        switch (key) {
            case 'InvKey':
            case 'PostDate':
            case 'City':
            break;

            default:
            //newDiv2 = $('<div/>').addClass('sub_row').appendTo('.row');
            $('<div class="field">' + value + '</div>').appendTo(newDiv2);
            break;
             }
         });
     });
 });

});

于 2012-05-29T18:21:49.447 に答える