- 締切済み
ブラウザの入力項目に演算結果を表示したい
ブラウザ(IE(Ver6.0)上に、数量、単価、金額の項目があり数量Or単価を入力した時点で即座に金額欄へ計算結果を表示する方法を知りませんか?または、不可能なのでしょうか? 【下記方法では出来るのですが】 1. <FORM ACTION="XXXXX.php"へ自身のphpを指定し、$_POST["XXXX"]を使っての計算はやりたくない。(作成したいフォームにMySQLからテーブル内容を選択する<select が複数項目存在し、再表示に時間がかかる為) 2.<input type="button"でのonclick="XXX()"のように ボタンがクリックされた時にfunction xxx()で計算する方法もしたくない。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- cojirou
- ベストアンサー率50% (59/117)
<html> <head> <script Language="JavaScript"><!-- function keisanNum() { kingaku = 0; tanka = document.inp_num.tanka.value; kosuu = document.inp_num.kosuu.value; if ( ( tanka.match(/[^0-9]/i) ) || ( kosuu.match(/[^0-9]/i) ) ) { alert("数値のみで入力してください"); } else if (( tanka != "" ) && ( kosuu != "" )) { kingaku = tanka * kosuu ; document.inp_num.goukei.value = kingaku; } else { document.inp_num.goukei.value = ""; } } // --></script> </head> <body> <form name="inp_num"> 単価:¥<input type="text" name="tanka" onKeyup="keisanNum()"><br> 個数:<input type="text" name="kosuu" onKeyup="keisanNum()"> 個<br> 金額:¥<input type="text" name="goukei"> </form> </body> </html> もう見ていらっしゃらないかもですが…。 少し直しました。 ご参考までに。
- cojirou
- ベストアンサー率50% (59/117)
ちなみに、javascriptで試してみました。 <html> <head> <script Language="JavaScript"><!-- function keisanNum( kind ) { kingaku = 0; n = String.fromCharCode( event.keyCode ); if ( kind == "tan" ) { tanka = eval( document.inp_num.tanka.value + n ); } else { tanka = document.inp_num.tanka.value; } if ( kind == "ko" ) { kosuu = eval( document.inp_num.kosuu.value + n ); } else { kosuu = document.inp_num.kosuu.value; } if (( tanka != "" ) && ( kosuu != "" )) { kingaku = tanka * kosuu ; document.inp_num.goukei.value = kingaku; } } // --></script> </head> <body> <form name="inp_num"> 単価:¥<input type="text" name="tanka" onKeyDown="keisanNum( 'tan' )"><br> 個数:<input type="text" name="kosuu" onKeyDown="keisanNum( 'ko' )"> 個<br> 金額:¥<input type="text" name="goukei"> </form> </body> </html> こんな感じ。ただ、これは飽くまで試作なので、改良が必要です。 入力値が数値以外の場合のチェックや、Backspace,Enter,Delete,Tabキーなどの対処、など。 私が参照したのは以下のURLです。 http://www.openspc2.org/reibun/javascript/form_textfield/004/index.html http://okweb.jp/kotaeru.php3?q=931286 http://bunjin.com/index2.html ご参考までに。
- cojirou
- ベストアンサー率50% (59/117)
PHPはサーバ側で処理を行うものだと思うので、 お求めの方法はPHPでは無理ではないでしょうか。 あるとすればJavascriptでは? 以下の参考URLにある、 「合計金額を即時に計算表示する」 といったような方法になるのではないかと思います。 ご参考までに。
- LancerVII
- ベストアンサー率51% (1060/2054)
#1です。 onChangeだとマウスで他の部分クリックしたり 他のフォーム等にフォーカス移動しないと値が反映されませんでした。 onkeyupを使用すると入力した時点で関数が呼び出されます。 注意としては入力されたものが数字であるか判別が必要になってくるかもしれません。
- LancerVII
- ベストアンサー率51% (1060/2054)
基本的な部分はわかっていらっしゃると判断して簡潔に行きます。 数量と単価のテキスフォームにonChange()を使用して 計算を実行する関数を呼び出したらいかがでしょうか? テキストフォームの内容が変わった時点(空から入力された等)で呼び出すことが出来ます。 そこで、数値を取得して計算した答えを、金額欄へ表示する感じです