2011-11-12 3 views
0

MySQL의 HTML 테이블을 채우는 PHP 페이지가 있습니다. ID가 'headTable'및 'visits'인 두 개의 개별 테이블을 출력합니다. 나는 '방문'테이블에서 값을 합산하고 합계를 해당 '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하는 '$'+ 물론 appliedTotal에 할당하기 전에 요약

+0

아니요. 'visits'라는 ID를 사용하여 각 개별 테이블의 값을 합산하고 ID 'headTable'을 사용하여 해당 테이블에 합계를 출력하려고합니다. – Nick

0

한 페이지에 두 개의 테이블 또는 동일한 'id'가있는 다른 태그를 사용할 수 없습니다.

+0

이것이 어떻게 수행 될 수 있는지에 대한 제안이 있습니까? – Nick

+0

대신 클래스별로 데이터가있는 표를 선택하십시오. 또는 그들을 모두 div 안에 넣고 그 개념을 선택자로 사용하십시오. – shomeax