2011-06-22 4 views
1

この関数を使用して、列内のすべての値の合計を計算します。結果ボックスを現在のセルと同様に入力ボックスに表示させたいと思います。私は値を参照する必要があるので、2つを混合するための構文にちょっとだけ取り組んでいます。関数の結果を2種類の要素で表示する

jQueryの

$(document).ready(function(){ 
$('#front_finish, #back_finish').change(function(){ 
    function tally (selector) { 
     $(selector).each(function() { 
      var total = 0, 
       column = $(this).siblings(selector).andSelf().index(this); 
      $(this).parents().prevUntil(':has(' + selector + ')').each(function() { 
       total += parseFloat($('td.sum:eq(' + column + ')', this).html()) || 0; 
      }) 
      $(this).html(total); 
     }); 
    } 
    tally('td.total'); 
    }); 
}); 

入力

<input type="text" name="glass_total" id="glass_total" value="0" /> 

<table id="data"> 
<tr> 
    <th>Finish</th> 
    <th>Pattern</th> 
    <th>Price</th> 
</tr> 
<tr> 
    <td>Front Finish:</td> 
    <td><span id="front_finish_name">Mirror</span></td> 
    <td class="sum" id="front_finish_price">15</td> 
</tr> 
<tr> 
    <td>Front Pattern:</td> 
    <td><span id="front_pattern_name"></span></td> 
    <td class="sum" id="front_pattern_price"></td> 
</tr> 
<tr> 
    <td>Back Finish:</td> 
    <td><span id="back_finish_name">Mirror</span></td> 
    <td class="sum" id="back_finish_price">15</td> 
</tr> 
<tr> 
    <td>Back Pattern:</td> 
    <td><span id="back_pattern_name"></span></td> 
    <td class="sum" id="back_pattern_price"></td> 
</tr> 
<tr> 
    <th colspan="2" align="right">Total</th> 
    <td class="total"></td> 
</tr> 

+1

もう少しhtmlを表示できますか?私は、テキストボックスと列の関係についてはわかりません。 –

+0

はい。私は投稿を更新しました。実際には両者の間には関係がありません。 PHPを使用して合計の結果を電子メールで送信しようとしています。セル内のテキストではなく、入力値を送信するほうがずっと簡単です。 – Thomas

+0

したがって、glass_totalは列とどのように対話しますか? –

答えて

1

あなたのjqueryはちょっとかもしれないと思います。試してみてください:

$(document).ready(function() { 
    $('#front_finish, #back_finish').change(function() { 
     var total = 0, temp; 
     $("#data td.sum").each(function() { 
      temp = $(this).html(); 
      if (!temp) { 
       return; 
      } 
      temp = parseFloat(temp); 
      if (isNaN(temp)) { 
       return; 
      } 
      total += temp; 
     }); 
     $("#data td.total").html(total); 
     $("#glass_total").val(total); // if you want it in the textbox 
    }); 
}); 
+0

説明をありがとう。 – Thomas

1

あなただけ掲載HTMLが1 td.totalを持っているように私には、それぞれが少し混乱しています。実際には1がある場合、あなたがしなければならないすべてはこれです:

$("#glass_total").val(total); 

が複数ある場合は、入力が一意であることが表示されますので、あなたはもう少し説明する必要があります。

+0

それはユニークです。私は合計がtd.totalと#glass_totalの値の両方に表示されるようにしたいと思います。私が鈍い、または鈍い場合、私を許してください。 – Thomas

+0

これはあなたのためにそれをすると思います。 –

+0

助けをありがとう – Thomas

関連する問題