';意外';从javascript事件处理程序调用ColdFusion代码(服务器端代码)时的行为
我有一个简单的YUI对话框,有两个按钮-接受和拒绝。我想在单击每个按钮时,将ColdFusion代码与JavaScript代码一起调用。当我将CF代码和JS代码一起引入时,不幸的是,每个函数中都会触发CF代码 所有代码如下所示:';意外';从javascript事件处理程序调用ColdFusion代码(服务器端代码)时的行为,javascript,html,coldfusion,yui,Javascript,Html,Coldfusion,Yui,我有一个简单的YUI对话框,有两个按钮-接受和拒绝。我想在单击每个按钮时,将ColdFusion代码与JavaScript代码一起调用。当我将CF代码和JS代码一起引入时,不幸的是,每个函数中都会触发CF代码 所有代码如下所示: <script type="text/javascript"> function displayForm() { YAHOO.namespace("example.container"); if (!YAHOO.exampl
<script type="text/javascript">
function displayForm() {
YAHOO.namespace("example.container");
if (!YAHOO.example.container.Form) {
YAHOO.example.container.Form = new
YAHOO.widget.SimpleDialog("Form", {
modal: true,
icon: YAHOO.widget.SimpleDialog.ICON_WARN,
visible: false,
fixedcenter: true,
constraintoviewport: true,
width: "500px",
role: "alertdialog",
draggable: false,
buttons: [ { text:"Accept", handler:handleAccept, isDefault:true }, { text:"Decline", handler:handleDecline} ]
});
YAHOO.example.container.Form.setHeader("Info");
YAHOO.example.container.Form.setBody("Body");
YAHOO.example.container.Form.render(document.body);
}
YAHOO.example.container.Form.show();
}
function handleAccept() {
this.cancel();
<CFQUERY name="UpdTable" datasource="test>
UPDATE t
set a = '1'
where b = '1'
</CFQUERY>
}
function handleDecline() {
this.cancel();
<CFQUERY name="UpdTable" datasource="test>
UPDATE t
set a = '2'
where b = '1'
</CFQUERY>
}
displayForm();
</script>
函数displayForm(){
名称空间(“example.container”);
如果(!YAHOO.example.container.Form){
YAHOO.example.container.Form=新建
YAHOO.widget.SimpleDialog(“表单”{
莫代尔:是的,
图标:YAHOO.widget.SimpleDialog.icon\u警告,
可见:假,
fixedcenter:对,
约束视口:对,
宽度:“500px”,
角色:“alertdialog”,
可拖动:错误,
按钮:[{text:“Accept”,处理程序:handleacept,isDefault:true},{text:“decept”,处理程序:handledcline}]
});
YAHOO.example.container.Form.setHeader(“Info”);
YAHOO.example.container.Form.setBody(“Body”);
YAHOO.example.container.Form.render(document.body);
}
YAHOO.example.container.Form.show();
}
函数handleAccept(){
这个。取消();
更新t
设置a='2'
式中b='1'
}
displayForm();
问题是当handleAcept()被自动触发时,handleDecline()CF代码被触发,因此我在数据库中的结果是a='2',而不是a='1'
是否有解决方法或简单的解决方案?理想情况下,我不想使用JS重定向。在用户浏览器上呈现页面之前,服务器会对您的两个查询进行评估 将查询放在一个单独的模板中,并使用YUI代码运行适当的模板,而不是像现有的那样将查询内联
ColdFusion是一种服务器端语言,总是在用户看到任何东西之前运行。在用户浏览器上呈现页面之前,服务器上会对您的两个查询进行评估 将查询放在一个单独的模板中,并使用YUI代码运行适当的模板,而不是像现有的那样将查询内联
ColdFusion是一种服务器端语言,总是在用户看到任何东西之前运行。当浏览器请求页面时,会执行ColdFusion代码。也就是说,当代码发送到浏览器时,将执行两个coldfusion cfquery(因此每次有人使用上述代码查看页面时,都会执行这两个查询)。 这就是ColdFusion的工作原理:
var callback =
{
success: function(o){},
failure: function(o){},
argument: []
};
var request = YAHOO.util.Connect.asyncRequest('POST', "accept.cfm", callback, "");
ColdFusion代码在浏览器请求页面时执行。也就是说,当代码发送到浏览器时,将执行两个coldfusion cfquery(因此每次有人使用上述代码查看页面时,都会执行这两个查询)。 这就是ColdFusion的工作原理:
var callback =
{
success: function(o){},
failure: function(o){},
argument: []
};
var request = YAHOO.util.Connect.asyncRequest('POST', "accept.cfm", callback, "");