使用Javascript从来自PHP的文本框中添加值

时间:2014-04-19 10:14:41

标签: javascript php textbox addition

我有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,但我没有在文本框中显示任何内容。关于如何解决这个问题的任何想法?

由于

2 个答案:

答案 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);