- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 javascript 控制 cfinclude 标签,以前从未这样做过,我不确定是否可以开始。
这是我的代码:
<form name="form" id="form" action="survey_sounding_geo.cfm" method="post">
<input type="hidden" name="isPost" value="1" />
<select name="format" id="format" onChange="showDiv(this.value);">
<option value="SurveyList" <cfif format eq 'SurveyList'>selected</cfif>>List surveys</option>
<option value="testimonial"<cfif format eq 'testimonial'>selected</cfif>>List Testimonials</option>
<option value="html_lsbg"<cfif format eq 'html_lsbg'>selected</cfif>>List Survey Ratings by Group</option>
<option value="excel1"<cfif format eq 'excel1'>selected</cfif>>Export Survey Summary</option>
<option value="excel_esd"<cfif format eq 'excel_esd'>selected</cfif>>Export Survey Details</option>
<option value="excel_esc"<cfif format eq 'excel_esc'>selected</cfif>>Export Survey Comments</option>
</select>
<input type="button" name="btn_1" value="Generate" onClick="submitForm();">
</form>
这是我的js代码:
function submitForm()
{
document.form.submit();
var res = document.getElementById('format').value;
if(res == 'testimonial'){
$("#test").html('<cfinclude template="Report_testimonials.cfm">');
}
if(res == 'SurveyList'){
$("#test").html('<cfinclude template="Report_SurveyList.cfm">');
}
if(res == 'excel1'){
$("#test").html('<cfinclude template="Report_ExcelSummaryExport.cfm">');
}
if(res == 'html_lsbg'){
$("#test").html('<cfinclude template="Report_SummaryList.cfm">');
}
if(res == 'excel_esd'){
$("#test").html('<cfinclude template="Report_ExcelDetailExport.cfm">');
}
if(res == 'excel_esc'){
$("#test").html('<cfinclude template="Report_ExcelCommentsExport.cfm">');
}
}
这就是我输出整个内容的方式:
<div id="test"></div>
我的问题是,由于某种原因,cfinclude 文件似乎在我提交表单之前尝试运行,这导致包含文件中出现随机错误,因为当我实际显示它们时应该传递值。
如果我从选项中删除 cfinclude 代码并将其替换为随机字母/单词,它就可以正常工作并且输出正确的值。
这是我原来的代码:
<cfif isDefined('isPost')>
<cfif form.format eq 'testimonial'>
<cfinclude template="Report_testimonials.cfm">
<cfelseif form.format eq 'SurveyList'>
<cfinclude template="Report_SurveyList.cfm">
<cfelseif form.format eq 'excel1'>
<cfinclude template="Report_ExcelSummaryExport.cfm">
<cfelseif form.format eq 'html_lsbg'>
<cfinclude template="Report_SummaryList.cfm">
<cfelseif form.format eq 'excel_esd'>
<cfinclude template="Report_ExcelDetailExport.cfm">
<cfelse>
<cfinclude template="Report_ExcelCommentsExport.cfm">
</cfif>
</cfif>
当我选择在页面上输出 html 的选项时,它会卡在页面上,然后当我选择 Excel 选项时(在 Excel 文件中下载相同的输出)之前的 html 代码仍然显示。当我更改格式时,我需要清除该输出。
此代码下载我选择的 Excel 文件。每当此代码运行时,我需要清除屏幕上的 html 输出
<cfif SurveyCommentsData.recordcount gt 0>
<cfcontent type="application/msexcel">
<cfheader name="content-disposition" value="attachment;filename=report.xls">
<cfoutput>#report#</cfoutput>
<cfelse>
Sorry no records found.
</cfif>
这是我修改后的代码:
function submitForm()
{
var res = document.getElementById('format').value;
if(res == 'testimonial'){
$("#test").load("Report_testimonials.cfm");
}
if(res == 'SurveyList'){
$("#test").load("Report_SurveyList.cfm");
}
if(res == 'excel1'){
$("#test").load("Report_ExcelSummaryExport.cfm");
$("#test").empty();
}
if(res == 'html_lsbg'){
$("#test").load("Report_SummaryList.cfm");
}
if(res == 'excel_esd'){
$("#test").load("Report_ExcelDetailExport.cfm");
$("#test").empty();
}
if(res == 'excel_esc'){
$("#test").load("Report_ExcelCommentsExport.cfm");
$("#test").empty();
}
submit();
}
这不会给我任何错误,但会导致整个事情停止工作。
最佳答案
您将需要使用 AJAX 来完成此任务。您收到 <cfinclude>
错误的原因在你的 JS 中是因为 CF 在代码接近 JavaScript 之前对其进行评估。
实现此目的的最简单方法是替换您的
$("#test").html('<cfinclude template="Report_testimonials.cfm">')
像这样:
$("#test").load("Report_testimonials.cfm");
这将向服务器发出一个 AJAX 请求以获取 CF 模板,然后将返回的 HTML 放入您的 #test
中。分区。
您的路径可能不同,因此您可能需要稍微修改一下传入 load
的模板名称。方法。它将需要您运行 JS 的模板的相对路径。
编辑:关于修改后的代码 - 您有两个选择,具体取决于您是否要在创建之前或之后清空 div对 Excel 模板的 AJAX 调用。如果您想在调用电话之前清空它,只需移动您的 $("#test").empty()
位于 AJAX 调用上方。如果您想在收到响应后清空它,可以将回调传递给 load
方法:
$("#test").load("Report_ExcelSummaryReport.cfm", function() {
$("#test").empty();
});
关于javascript - 使用 javascript 控制 CFINCLUDE 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12904602/
如何将变量传递给我从另一个页面包含的 cfm 页面? 例子: 和 displayNameAndAgeFrom_A.cfm 是 #a.name# #a.age# 谢谢! 最佳答案 AFAIK,这应
我们的代码库包含大量以下示例,因为我们允许根据客户的个人需求自定义许多基页。 我想创建一个自定义 CF 标签,将其样板化为一个简单的 ,但是我遇到了这样一个事实,即自定义标
更新:似乎railo完全没有这个问题。 更新:我投票决定关闭这个问题,因为我觉得人们更关注这个问题的整体“有人有更好的想法拆分大型组件”部分(我不应该放入)那么使用 cfincludes 和 cfco
我对 ColdFusion 有点陌生,我正在尝试了解使用 cfinclude 文件的最佳方式。我发现限制的是文件被内联包含,就好像它们是包含模板的一部分一样。这很好也很简单,但这意味着包含文件内的任何
我有一个名为“conv”的函数,我的应用程序中的多个程序都需要它。因此,我没有将它包含在每个程序中,而是将它放在 Application.cfm 中,如下所示: 当我使用函数“conv
我正在尝试使用 javascript 控制 cfinclude 标签,以前从未这样做过,我不确定是否可以开始。 这是我的代码: selected>List surveys
我对 Dreamweaver 和 Coldfusion 都很陌生,我在解决这个问题上遇到了麻烦。我相信修复非常简单。 当我在 Dreamweaver 中从现有模板创建新页面时,Dreamweaver
似乎标准的 MVC 方法(因为它与 ColdFusion 相关)是使 View 文件为 .cfm 并在最终处理 View 的 cfc 内部执行 CFINCLUDE。 这是否打破了 cfc 的面向对象?
我正在从使用 Application.cfm 切换到 Application.cfc,并且我正在使用 Ben Nadel 的方法将我的应用程序扩展到使用应用程序代理的子文件夹中。 ( link to
有人知道将包含许多函数的 .cfm cfinclude 到 CFC 中会花费多少成本吗? 或者如果我将函数直接附加到对象的 This 作用域中,会更快吗? (func1、func2 是单例工厂
我有一行 Coldfusion 代码,其中包含一个使用 utf-8 字符集编码的 cfm 文件,并将其保存到变量中。我遇到的问题是,无法在 cfinclude 中指定字符集,并且生成的变量似乎无法正确
我刚开始使用 ColdFusion OOP,我想做一个 DIV,它根据用户所在的页面和他们拥有的登录权限(角色)显示不同的用户链接。基本上是一个“上下文”菜单。 我应该将此工具栏/导航 DIV 放在
我正在使用 在母版页中包含各种页面。在我的母版页中,所有正文内容都包含在 中标签。但是我注意到在测试之后,包含的 .cfm 页面看不到 标签,因此不显示动态数据。
我是一名优秀的程序员,十分优秀!