首页 > 解决方案 > 将参数传递给cfprogressbar

问题描述

使用 ColdFusion 2018,并尝试在 API 调用上添加进度条。创建了一个 cfc 函数来获取此 API 详细信息。为此,通过绑定参数调用了“getStatus()”函数。并且能够成功加载cfprogress bar。问题是我需要向这个 getstatus 函数传递一个额外的参数。可能吗?

请查看我尝试加载 cfprogressbar 的示例代码

 <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
    
    <script type="text/javascript">
    
    function startProgress() {
    ColdFusion.ProgressBar.start("mydataProgressbar");
    };
    
    
    function onfinish() {
    alert("Done");
    };
    </script>
    
    <body>
    <cfif IsDefined("Session.STATUS")>
    <cfscript>
    StructDelete(Session,"STATUS");
    </cfscript>
    </cfif>
    
    <cfset sjsondata = '{"name":"Jibin","id":"1234"}'>
    <!--- For code simplicity, formatting is minimal. --->
    <cfform name="kitform">
    <p>To make our service better and to benefit from our special offers,
    take a moment to give us your email address and send us a comment.</p>
    <p>Name:
    &nbsp;<cfinput type="text" name="name"> </p>
    <p>E-mail:
    &nbsp;<cfinput type="text" name="email"> </p>
    <p>Comment:
    &nbsp;<cftextarea name="cmnt"/></p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <cfoutput>
    <cfinput type="hidden" name="jsondata" value="#sjsondata#">
    </cfoutput>
    <cfinput type="button" name="bttn1" value="Send Comment"
    onClick=startProgress()></p>
    <!--- The progressbar control --->
    <cfinput type="button" name="bttn2" value="Send Comment 2"
    onClick=startProgress2()></p>
    <div style="padding-left:3px" >
    
    
    <cfprogressbar name="mydataProgressbar"
    bind="cfc:progressbar.getstatus({jsondata})"
    interval="1700"
    width="200"
    oncomplete="onfinish"/>
    
    
    </cfform>
    </body>
    </html> 
    
    File progressbar.cfc
    
    <cfcomponent name="progressbar">
    <cffunction name="getstatus" access="remote">
    <cfargument name="jsonData" type="string" required="false">
    
    <cfset str = StructNew()>
    <cfset str.message = "Saving Data">
    <cfif NOT IsDefined("session.STATUS")>
    <cfset session.STATUS = 0.1>
    <cfscript>
    Sleep(200);
    </cfscript>
    <cfelseif session.STATUS LT 0.9>
    <cfset session.STATUS=session.STATUS + .1>
    <cfscript>
    Sleep(200);
    </cfscript>
    <cfelse>
    <cfset str.message = "Done...">
    <cfset session.STATUS="1.0">
    </cfif>
    <cfset str.status = session.STATUS>
    <cfreturn str>
    </cffunction>
    
    </cfcomponent>

问题1:有没有办法将参数传递给cfprogressbar getstatus() 函数?

问题 2:是否有任何其他替代方法可以在进度条中实现此过程。

标签: coldfusionprogress-bar

解决方案


推荐阅读