Coldfusion 从表单调用CFC

Coldfusion 从表单调用CFC,coldfusion,cfc,Coldfusion,Cfc,正如标题所说,我正在从表单中调用CFC。我现在就是这样做的,但必须有更好的方法 表格: <cfform action="choice.cfm" method="post"> <cfinput type="hidden" name="method" value="DeleteMessage"> <cfinput type="hidden" name="announcement" value="#announcement#"> <cf

正如标题所说,我正在从表单中调用CFC。我现在就是这样做的,但必须有更好的方法

表格:

<cfform action="choice.cfm" method="post">
    <cfinput type="hidden" name="method" value="DeleteMessage">
    <cfinput type="hidden" name="announcement" value="#announcement#">
    <cfinput type="hidden" name="ID" value="#ID#">
    <cfinput type="submit" value="Delete" name="form.OKbutton1" onclick="return confirm('Are you sure you want to delete?');">
</cfform>
<cfif IsDefined("form.OKbutton1")> 
    <cfinvoke component="pdprojects.scr.changedisablesysequipment" 
         method="DeleteMessage" 
         returnvariable="DeleteMessages" 
         argumentCollection="#Form#" />
</cfif>

行动页面:

<cfform action="choice.cfm" method="post">
    <cfinput type="hidden" name="method" value="DeleteMessage">
    <cfinput type="hidden" name="announcement" value="#announcement#">
    <cfinput type="hidden" name="ID" value="#ID#">
    <cfinput type="submit" value="Delete" name="form.OKbutton1" onclick="return confirm('Are you sure you want to delete?');">
</cfform>
<cfif IsDefined("form.OKbutton1")> 
    <cfinvoke component="pdprojects.scr.changedisablesysequipment" 
         method="DeleteMessage" 
         returnvariable="DeleteMessages" 
         argumentCollection="#Form#" />
</cfif>

我找到了一种使用jquery和cfc简化此过程的方法。页面更新很快,如果用户点击后退按钮或刷新页面,则无需担心。使用JQuery,您可能可以做更多的工作来附加div标记,而不是location.reload();(页面刷新)在呼叫结束时

CF呼叫

<cfajaxproxy cfc="pdprojects.scr.changedisablesysequipment" jsclassname="choice_cls">

这是jquery

<script src="/js/jquery-1.7.1.min.js">


<script>
$(document).ready(function(){
    $("#OKbutton").click(function(){
        if ($('#Announcement').val() == "") {
            alert("Please enter message in the text area!");
        }
        else {
            var instance = new choice_cls();
            instance.setForm("enterit");
            instance.InsertMessage();
            location.reload();
        }
    });
     $("#OKbutton1").click(function(){
            var instance = new choice_cls();
            instance.setForm("deleteit");
            instance.DeleteMessage();
            location.reload();
    });
});

$(文档).ready(函数(){
$(“#确定按钮”)。单击(函数(){
如果($(“#公告”).val()=“”){
警报(“请在文本区域输入消息!”);
}
否则{
var instance=newchoice_cls();
实例.setForm(“enterit”);
instance.InsertMessage();
location.reload();
}
});
$(“#确定按钮1”)。单击(函数(){
var instance=newchoice_cls();
setForm(“deleteit”);
DeleteMessage();
location.reload();
});
});

这是我的html

<cfform action="" id="enterit" name="enterit" method="post"> 
<cfinput type="hidden" value="#session.username#" name="thisname">  
<cftextarea cols="50" rows="8" name="Announcement"></cftextarea><br>
<cfinput type="button" value="Enter Announcement" name="OKbutton" id="OKbutton">
</cfform>

<cfform action="" id="deleteit" name="deleteit"  method="post">
<cfinput type="hidden" name="method" value="DeleteMessage">
    <cfinput type="hidden" name="announcement" value="#announcement#">
    <cfinput type="hidden" name="ID" value="#ID#">
    <cfinput type="button" value="Delete" name="OKbutton1" onclick="return confirm('Are you sure you want to delete?');">
 </cfform>



然后只需为coldfusion创建您的CFC

请清楚地说明你遇到的问题。杰克说了什么。:)我真的不认为你所做的有什么问题。没有回答你的问题,但我会使用StructKeyExists(表单,'OKbutton1'),而不是isDefined(“表单.OKbutton1”)。它有助于促进范围变量使用jquery做这件事怎么样?也许如果你限定了你所说的“但必须有更好的方法”可能会有所帮助。您认为当前方法的错误之处是什么。如果你改进你的问题,我将取消我的否决票。