我有3个文本框,其值来自PHP,我想使用Javascript添加它们。
所以我有这段代码:
function addNumbers()
{
var pa = parseFloat(document.getElementById("pa").value) ||0;
var ma = parseFloat(document.getElementById("ma").value) ||0;
var oa = parseFloat(document.getElementById("oa").value) ||0;
var ga = document.getElementById("ga");
ga.value = (pa+ma+oa).toFixed(2);
}
在我的HTML中,我有这个:
<input onchange="addNumbers()" type="text" id="pa" name="pa" value="<?php echo $pas_Sum ?>" />
<input onchange="addNumbers()" type="text" id="ma" name="ma" value="<?php echo $mas_Sum ?>" />
<input onchange="addNumbers()" type="text" id="oa" name="oa" value="<?php echo $oas_Sum ?>" />
<input onchange="addNumbers()" type="text" id="ga" name="ga" value="" />
问题:总和没有显示在文本框“ga”
中也在PHP中,我有这个:
$pa = mysql_query("select SUM(PAmt) as sumPA FROM $tbl_name");
$pa_sum = mysql_fetch_assoc($pa);
$pas_Sum = number_format ($pa_sum['sumPA'], 2);
$ma = mysql_query("select SUM(MAmt) as sumMA FROM $tbl_name");
$ma_sum = mysql_fetch_assoc($ma);
$mas_Sum = number_format ($ma_sum['sumMA'], 2);
$oa = mysql_query("select SUM(Amt) as sumOA FROM $tbl_name");
$oa_sum = mysql_fetch_assoc($oa);
$oas_Sum = number_format ($oa_sum['sumOA'], 2);
起初我尝试使用以下代码直接添加数字:
$all = $pas_Sum + $mas_Sum + $oas_Sum
然后我把它放在HTML文本框中
<input type="text" id="ga" name="ga" value="<?php echo $all ?>" />
这里的问题是显示错误的数量。这就是为什么我尝试使用JS,但我没有在文本框中显示任何内容。关于如何解决这个问题的任何想法?
由于
答案 0 :(得分:0)
尝试分配这样的值,
document.getElementsByName('ga')[0].value = ga;
其中ga是你的总和,
ga = (pa+ma+oa).toFixed(2);
答案 1 :(得分:0)
如果您希望在页面加载时计算值,则需要在加载完成后强制更改事件
DEMO http://jsfiddle.net/a3aL6/1/
(function () {
function load2(){
document.getElementById("ga").onchange();
}
if (window.addEventListener) {
window.addEventListener('DOMContentLoaded', load2, false);
} else {
window.attachEvent('onload', load2);
}
} ());
如果您希望在用户更改输入时更改值,而不必失去对元素的专注,那么您可以考虑使用onkeyup
代替onchange
DEMO http://jsfiddle.net/a3aL6/2/
str_replace示例
$pas_Sum = str_replace(',', '', $pa_sum['sumPA']);
$pas_Sum = number_format (pas_Sum, 2);