2015-07-04 17 views
1

我有一個由數據庫查詢生成的值的列表。 我想查看用戶選擇的值(通過複選框)的總和。顯示選擇它們時的值總和

enter image description here

代碼複選框:

<?php 
$i = -1; 
while ($row = mysql_fetch_array($res)) 
{ 
$i++; 
?> 
echo '<table> 
<tr> 
<td><input type="checkbox" onclick="bedrag_optellen(this, <?php echo $i ?>);" value= "'.$row['bedrag_incl'].'"></td> 
<td>&euro; '.number_format($row['bedrag_incl'], 2, ',', ' ').'</td> 
</tr> 
</table>'; 
} 
?> 

代碼輸出領域:

<table> 
<tr> 
<td width="51"><input type="text" id="bedragen_selected" name="bedragen_selected" value="" size="10" style="text-align:right;background-color: #e7e7e9" readonly="readonly" /></td> 
</tr> 
</table> 

的JavaScript

<script type="text/javascript"</script> 
function bedrag_optellen(checkbox, nr) 
{ 
     var i, totaal = 0; 
     var elems = document.getElementsByName('bedrag_optellen[]'); 
     var l = elems.length; 
     for(i=0; i<l; i++) 
     { 
      if(formElement['bedrag_optellen[]'][i].checked = true) 
      { 
       totaal += parseFloat(elems[i].value) || 0; 
      } 

      document.getElementById('bedragen_selected').value = totaal.toFixed(2); 
     } 
} 
</script> 

的代碼不工作,也沒有給出的錯誤。

有人幫我嗎?

https://jsfiddle.net/fawavmbo/

+1

可以添加一個demo /小提琴? – Mritunjay

+0

什麼是formElement?你爲什麼不用'elem [i]'而不是'formElement ['bedrag_optellen []'] [i]'? –

+0

有一個錯誤是:'formElement ['bedrag_optellen []'] [i] .checked = true' - 你不是比較,而是設置。必須是'==' – Jeff

回答

1

看看這個fiddle

我已經用它提供的簡單jQuery。

我做了以下修改:

  1. 新增一類cost的複選框。
  2. 刪除onClick屬性。
  3. 增加了jQuery。

爲代碼在你的系統工作,添加到您的<head>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

下面的代碼,這裏是片段。

HTML

<table> 
<tr> 
    <td><input class='cost' type="checkbox" value= "8"></td> 
    <td>&euro; 8</td> 
</tr> 
<tr> 
    <td><input class='cost' type="checkbox" value= "3"></td> 
    <td>&euro; 3</td> 
</tr> 
<tr> 
    <td><input class='cost' type="checkbox" value= "19"></td> 
    <td>&euro; 19</td> 
</tr> 
<tr> 
    <td><input class='cost' type="checkbox" value= "2"></td> 
    <td>&euro; 2</td> 
</tr> 
<tr> 
    <td><input class='cost' type="checkbox" value= "15"></td> 
    <td>&euro; 15</td> 
</tr> 
<tr> 
    <td><input class='cost' type="checkbox" value= "12"></td> 
    <td>&euro; 12</td> 
</tr> 
</table> 

<table> 
<tr> 
<td width="51"><input type="text" id="bedragen_selected" name="bedragen_selected" value="" size="10" style="text-align:right;background-color: #e7e7e9" readonly="readonly" /></td> 
</tr> 
</table> 

JS

var sum = 0; 

$('.cost').click(function() { 
    if($(this).is(':checked')) { 
     sum = sum + parseInt($(this).val()); 
    } else { 
     sum = sum - parseInt($(this).val()); 
    } 
    $('#bedragen_selected').val(sum); 
}); 
+0

謝謝Shrinivas。當我把它複製到我的系統時,你的代碼似乎不起作用。 – Muiter

+0

你需要添加jQuery庫到你的''。更新了答案。 –

+0

我正在使用其他腳本,所以不會是問題,因爲jQuery庫已經存在。 – Muiter