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

使用Javascript从来自PHP的文本框中添加值,javascript,php,textbox,addition,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

我有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);
}
$all = $pas_Sum + $mas_Sum + $oas_Sum
在我的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="" />  
$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);
首先,我尝试使用以下代码直接添加数字:

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);
}
$all = $pas_Sum + $mas_Sum + $oas_Sum
然后我把它放在HTML文本框中

<input type="text" id="ga" name="ga" value="<?php echo $all ?>" /> 

尝试这样分配值

  document.getElementsByName('ga')[0].value = ga;
ga是你的总数

  ga = (pa+ma+oa).toFixed(2);

如果希望在页面加载时计算值,则需要在加载完成后强制更改事件

演示

如果用户希望更改输入,而不必丢失元素的焦点,则可以考虑使用<代码> OnKypUP ,而不是<代码> OnChchange < /Cord>< /P> 演示

str_替换示例

$pas_Sum =  str_replace(',', '', $pa_sum['sumPA']);
$pas_Sum = number_format (pas_Sum, 2);

在第一个HTML清单中,ga行没有php<代码>
我应该在那里放什么?文本框“ga”应该只包含3个框的总和。您在控制台中是否有任何错误?@Lugia101101,无。还有Javascript代码——如果我把ga.value=(pa.toFixed(2);要尝试代码,我还没有得到任何值。在PHP代码中,如果我输入,则从您的PHP解析的数据肯定有问题。您当前状态下的代码运行良好。谢谢您的回答。我已尝试在函数中输入常量值。例如:function addNumbers(){var y=5;var ga=document.getElementById(“ga”);ga.value=(y+2);}。文本框上仍然没有显示。是的,我做了,它现在起作用了,问题是,如果有逗号,它只是在逗号之前获取数字。你能粘贴代码的最后两行吗?这样我就可以理解到底是什么问题了。谢谢,我现在明白了为什么它不起作用了。还有为什么PHP代码没有给出正确的答案。它没有忽略逗号。我如何可以忽略逗号以便添加?我尝试了str_replace,但它不起作用。如果未使用函数
number_格式
,原始php会输出什么?谢谢@Vector,它现在起作用了,但如果有逗号,它只是在逗号之前获取数字。我如何可以忽略逗号?在使用之前在number_format函数中,使用'str_replace(',','','',$subject);请看我的编辑好的,我会试试。我做的是$pas_Sum=number_format(str_replace(',','','',$pa_Sum['sumPA']),2;