从cfc中总结表单内部绑定的字段

时间:2012-06-13 18:09:17

标签: binding coldfusion sum cfc

我需要计算发票总额。此发票是使用表单,金额,数量和税收字段创建的,字段的总和是使用cfinput中的绑定进行的。 我不能把所有行的总和,总数。 我尝试了一些操作,但没有达到解决方案

这是一个示例代码:

<cfform action="" method="post">
<cfloop from="1" to="3" index="i">

    Q.ta <cfinput type="text" name="quantita#i#" value="0"> 
    + 
    Importo <cfinput type="text" name="importo#i#" value="0"> 
    +
    Tax <cfinput type="text" name="iva#i#" value="0"> 
    = 
    Totale <cfinput type="text" name="totale#i#" value="0" bind="cfc:somma.getSomma({quantita#i#},{importo#i#},{iva#i#})">

    <br /><br />        

</cfloop>

CFC:

<cfcomponent>
 <cffunction name="getSomma" access="remote" returntype="string">

    <cfargument name="quantita" default="0">
    <cfargument name="importo" default="0">
    <cfargument name="iva" default="0">

    <cfset totaleSomma=#evaluate((importo*quantita)*(1+iva))#>

    <cfreturn totaleSomma>
 </cffunction>  
</cfcomponent>

2 个答案:

答案 0 :(得分:1)

我认为你需要创建一个Javascript函数,如果你想循环遍历所有这些形式的游戏并得到一个&#34;总计&#34;。我的建议是放弃cfform并使用jQuery创建一个可编辑的网格。

答案 1 :(得分:0)

好的,我找到了解决方案,我使用cfdiv作为总计:

<cfparam name="var_tot" default="0">

<cfloop from="1" to="3" index="i">
<cfparam name="totale#i#" default="0">
<cfset var_tot = listappend(var_tot, "{totale"&#i#&"}")>
</cfloop>



<cfform action="" method="post">
<table>
<cfloop from="1" to="3" index="i">
<tr>    
    <td>Q.ta</td><td><cfinput type="text" name="quantita#i#" value="0"></td>  
    <td>Importo</td><td><cfinput type="text" name="importo#i#" value="0"> </td>
    <td>Tax</td><td><cfinput type="text" name="iva#i#" value="0"> </td>
    <td>Totale</td><td class="price"><cfinput type="text" name="totale#i#" value="0" bind="cfc:somma.getSomma({quantita#i#},{importo#i#},{iva#i#})" ></td>      
</tr>
</cfloop>
</table>
</cfform>

<cfdiv bind="url:divtot.cfm?InputText=#var_tot#" id="checktot">

divtot.cfm

<cfparam name="tot" default="0">
<cfset listval=url.InputText>

<cfloop index="i" list="#listval#" delimiters=",">
<cfset tot=tot+i>
</cfloop>


TOTALE: <cfoutput>#tot#</cfoutput>

谢谢大家