以下编码是我的疑问。总费用值是从db获取的。目前我们已经付款了。现在我希望如果我在付费中输入任何值,则输入的值将从db值中减去,新值将显示在bal费用文本框中以及存储在db中。
我的编码是......
<HTML>
<HEAD>
<script language="javascript">
function doMath()
{
var oldbal= parseInt(document.getElementById('totalfees').value);
var paid= parseInt(document.getElementById('paid').value);
var totalfees = oldbal-paid;
document.getElementById('totalfees').value = totalfees;
}
</script>
</HEAD>
<body>
<?php
//fteching query
include("db.php");
$billtype_id = $_GET['billtype_id'];
$result=mysql_query("select * from bill_type where billtype_id=$billtype_id");
while($res=mysql_fetch_array($result))
{
$totalfees=$res['totalfees'];
}
//inserting query
$sql=mysql_query("insert into fees_admin values totalfees='$balfees' WHERE billtype_id='$billtype_id'",$conn);
include("config.php");
$balfees=$_POST['totalfees'];
$sql=mysql_query("insert into fees_admin values totalfees='$balfees' WHERE billtype_id='$billtype_id'",$conn);
?>
//html form
<form name="form" method="post" action="<?php $_SERVER['PHP_SELF'];?>">
<table>
<tr>
<td>Total Fees :</td>
<td><input name="total" type="text" id="oldbal" value="<?php echo $totalfees;?>" readonly="true" style="background-color:#FFFFFF"></td>
</tr>
<tr>
<td>Paid :</td>
<td><input type="text" id="paid" name="paid" onKeyUp="doMath();"></td>
</tr>
<tr>
<td>Bal Fees</td>
<td><input name="totalfees" type="text" id="totalfees" readonly="true" style="background-color:#FFFFFF"></td>
</tr>
</table>
</form>
感谢阅读。请清除我的怀疑......
答案 0 :(得分:0)
要清楚,输入元素将在您调用“value”时返回一个字符串。因此,在您的示例中,您需要将减法公式更改为:
var totalfees = parseFloat(oldbal) - parseFloat(paid);
如果不需要小数精度,可以使用parseFloat从字符串或parseInt创建一个float。
您可能还应该更改HTML代码以使DOM级别0事件“更改”而不是keyUp。它在各种不同的浏览器(桌面,移动设备,平板电脑)中更加一致。
答案 1 :(得分:0)
更改
var oldbal= parseInt(document.getElementById('totalfees').value);
到
var oldbal = parseInt(document.getElementById('oldbal').value);
功能应该看起来像
function doMath()
{
var oldbal = document.getElementById('oldbal').value;
var paid = document.getElementById('paid').value;
var totalfees = parseInt(oldbal) - parseInt(paid);
document.getElementById('totalfees').value = totalfees;
}
我相信你正在检索错误的输入元素。