2011-11-12 6 views
0

MySQLのHTMLテーブルを取り込むPHPページがあります。 IDが 'headTable'と 'visits'の2つの別個のテーブルを出力します。私は '訪問'テーブルから値を合計し、対応する 'headTable'に合計を出力しようとしています。また、入力フィールドに入力するチェックボックスもあり、すべてのチェックボックスをオンにすると正しい合計を得ることができません。手動で値を入力すると、合計が正しくなります。前もって感謝します。 Here is an Example on Fiddle複数のテーブルに入力するJquery sumフォーム

<table id="headTable"> 
    <tr> 
     <th>First Table</th> 
     <th><span id="appliedTotal"></span></th> 
    </tr> 
</table> 

<table id="visits"> 
    <tr> 
     <td>Jane</td> 
     <td>18.45</td> 
     <td><input type="checkbox"></td> 
     <td><input class="amount" type="text" size="20" value=""></td> 
    </tr> 
    <tr> 
     <td>Peter</td> 
     <td>100</td> 
     <td><input type="checkbox"></td> 
     <td><input class="amount" type="text" size="20" value=""></td> 
    </tr> 
</table> 

<table id="headTable"> 
    <tr> 
     <th>Second Table</th> 
     <th><span id="appliedTotal"></span></th> 
    </tr> 
</table> 

<table id="visits"> 
    <tr> 
     <td>Ronald</td> 
     <td>100</td> 
     <td><input type="checkbox"></td> 
     <td><input class="amount" type="text" size="20" value=""></td> 
    </tr> 
    <tr> 
     <td>John</td> 
     <td>100</td> 
     <td><input type="checkbox"></td> 
     <td><input class="amount" type="text" size="20" value=""></td> 
    </tr> 
</table> 

と私のjQuery

<script> 

$(document).ready(function(){ 
    $(function() { 

     $('table input[type="checkbox"]').change(function() { 
      var input = $(this).closest('td').next('td').find('input'); 

      if ($(this).is(':checked')) { 
       var amount = $(this).closest('td').prev('td').text(); 
       var sum = 0; 

       $.each($('table#visits'), function() { 
        $('.amount').each(function() { 
         sum += Number($(this).val()); 
         $('#appliedTotal').html('$'+sum.toFixed(2)); 
        }); 
       }); 

       input.val(amount); 

      } else { 
       input.val('0.00'); 
       var sum = 0; 

       $('.amount').each(function() { 
        sum += Number($(this).val()); 
        $('#appliedTotal').html('$'+sum.toFixed(2)); 
       }); 

      } 
     }); 
    }); 

    $.each($('table#visits'), function() { 
     $(".amount").keyup(function() { 
      var sum = 0; 

      $('.amount').each(function() { 
       sum += Number($(this).val()); 
       $('#appliedTotal').html(sum); 
      }); 
     }); 
    }); 

}); 
</script> 

のためにこれは私が何を探していたものです。

JSFiddle Example

+0

質問は? – shomeax

+0

あなたは特定の質問をしていません。しかし、jqueryでいくつかの入力を集計する必要がある場合は、問題のすべての入力に共通のクラスを与え、クラスごとにそれを取得することを止めるのは何ですか? – GordonM

+0

私の質問は、テーブルで値を合計し、合計を対応する 'headTable'に出力したいです。このコードは、両方のテーブルのすべての値を合計し、正しい合計でもありません。私はここに空白を描画しています... – Nick

答えて

0

それがドルから数字を作成する方法についてですか?私は反対好むが、あなたのケースのために(1)数に渡す前に)(.valする部分文字列を追加します()

と=「$」+は 合計 合計は、前のコース

+0

いいえ私はid 'visits'を持つ個々のテーブルの値を合計し、id 'headTable'を持つ対応するテーブルに合計を出力しようとしています。 – Nick

0
のappliedTotalに割り当てます

あなたは1つのページで同じ「id」を持つ2つのテーブルまたは他のタグを持つことはできません。

+0

これはどのようにして行うことができますか? – Nick

+0

代わりにクラス別にデータを含むテーブルを選択します。またはそれらをすべて別のdivに入れ、その概念をセレクタとして使用します。 – shomeax

関連する問題