プロが教える店舗&オフィスのセキュリティ対策術

今、ColdfusionでWEBの構築をしているのですが、困っています。
以下のような感じで作ってみているのですがなかなかうまくいかず悩んでいます。
(1)CFLOOPをつかって表をi行作る。
(2)その行ごとに数値を入力すると自動計算される。
(3)この場合、WEBからのinputなので、数値が入力されたら即計算させたい
という感じにしたいのですが、計算されず困っています。
どなたか、よろしくお願いします。
<html>
<head>
<title>計算<title>
</head>
<b<TABLE BORDER="1" cellpadding="0">
<FORM name="myform"
action="url"
method="post">
<cfset text1 = 0>
<cfset text2 = 0>
<cfset text3 = 0>
<cfset text4 = 0>
<cfset text5 = 0>
<cfset text6 = 0>
<cfset text7 = 0>
<cfloop index="i" from="1" to="10">


<TR>
<TD><input type="text" name="text1" size="10" value="0"></TD>
<TD><input type="text" name="text2" size="10" value=""></TD>
<TD><input type="text" name="text3" size="10" value="0"></TD>
<TD><input type="text" name="text4" size="12" value="0"></TD>
<TD><input type="text" name="text5" size="10" value=""></TD>
<TD><input type="text" name="text6" size="12" value=""></TD>
<TD><input type="text" name="text7" size="10" value="0"></TD>
<cfset text4=evaluate(text1 + text2 - text3)>
<cfset text7=evaluate(text4 + text5 + text6)>
</TR>
</cfloop>

</form>
</TABLE>
</body>
</html>
です、よろしくお願いします。

A 回答 (1件)

考え方、根本的に間違ってませんか?


ColdFusionはHTMLを吐き出すCGIになりますので、「入力されたら即計算」なんて事はできませんよ?

cfsetで値を入れているのも意味不明です。
結局、変数をどこにも使用していないですよね?

各テキストの初期値が「0」と決まっているのであれば、別にcf使わなくてもhtmlでいいのでは?
value値に直接0を入れ込んで、計算はJavaScriptでさせるべきです。(というより、入力したら即計算はJavascriptじゃないとできない)
初期値が変わるかもしれないと言うのであれば、cfsetで初期値の設定をしておいて、各テキストフィールドのValue値に、変数をセットするようにすればいいでしょう。

<INPUT TYPE="text" name="TEXT1" value="<cfoutput>#text1#</cfoutput>">

# cfset でフィールド名と同じ名前の変数を作っても、
# そのフィールドに値ははいりませんよ?

後は各テキストフィールドのonBlurまたは、onChangeイベントハンドラに、計算するロジックを組み込むだけだと思います。

まず最初に、CGIでできることと、JavaScriptでできることの基本を押さえることをお薦めします。
    • good
    • 0
この回答へのお礼

ありがとうございます。。
やはり、まだまだ勉強不足のようです。
ちなみに、JavaScriptで、組んでみいたのもあるのですが、それも計算されずに困っているので、もしよろしければお願いいたします。

お礼日時:2001/07/02 15:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!