2011-07-05 13 views
-1

以下のコードは私の疑いです。合計手数料はdbから取得されます。現在支払われています。今私は、私が支払った値を入力すれば、入力された値はdb値から減算され、新しい値はbal料金テキストボックスに表示され、dbに格納されます。javascriptを使用した引き算

私のコーディングが...読書のための

<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

あなたは何について疑問がありますか?何か動作していないのですか? – calumbrodie

+0

ここでの質問は何ですか? –

+2

小さなボビーテーブルの伝説も読んでください... http://stackoverflow.com/questions/332365/xkcd-sql-injection-please-explain。 (あなたのコードは安全ではありません) – calumbrodie

答えて

0

"value"を呼び出すと、入力要素は文字列を返します。あなたは小数点以下の精度を必要としない場合は、文字列またはのparseIntからフロートを作成するために、parseFloatはを使用することができます

var totalfees = parseFloat(oldbal) - parseFloat(paid); 

:だからあなたの例では、あなたがに減算式を変更する必要があります。

おそらく、DOMレベル0のイベントをkeyUpではなく「変更」するようにHTMLコードを変更する必要があります。さまざまなブラウザ(デスクトップ、モバイル、タブレット)の範囲でより一貫性があります。

+0

コーディングに感謝します。しかしこれで私は出力を得ることができません。 – boopathi

+0

あなたはそこにparseIntを持っています。申し訳ありません:( – Shakakai

+0

私はすべてのparseIntをparseFloatに変更しましたが、出力が得られません... – boopathi

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; 
} 



のようになります。間違った入力要素を取得します。

関連する問題