2011-11-12 96 views
0

我有一個PHP頁面,填充MySQL的HTML表格。它輸出兩個帶有ID headTable和'visits'的獨立表格。我正在嘗試總結「訪問」表中的值並將總和輸出到相應的「headTable」。還有一個複選框填充輸入字段,並且在檢查所有複選框時我也無法獲得正確的總和。如果我手動鍵入值,總和是正確的。提前致謝。 Here is an Example on Fiddlejquery總表格輸入在多個表

<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

不。我試圖從每個單獨的表格中總結出id爲'visits'的值,並將總和輸出到id爲'headTable'的相應表格中。 – Nick

0

您不能在一個頁面上擁有兩個表格或任何其他具有相同'id'的標籤。

+0

你有什麼建議可以做到這一點? – Nick

+0

而不是按類別選擇表格。或者將它們全部放入單獨的div中,並將該概念用作選擇器。 – shomeax