我正在尝试使用javascript或coldfusion替换传递值的值。我们的想法是我们有一个输出网格值的模板。但显示的值需要由查询动态确定。到目前为止,我还没有想出任何好主意。
以下是我认为会起作用的一些例子(但没有)。它可以解释我想要做的事情:
<cfset StaticValue="DynamicValue">
<cfset DynamicValue="What I Want To Show">
<script type="text/javascript">
document.getElementById("demo").innerHTML="<cfoutput>#StaticValue#</cfoutput>";
</script>
<cfoutput>#<span id="demo"></span>#</cfoutput>
答案 0 :(得分:3)
要将现有字符串/变量用作变量名,您需要使用括号表示法。
在CF中,如果您没有明确确定变量范围,则会在Variables
范围内创建变量,因此您可以这样做:
<cfset StaticValue="DynamicValue">
<cfset DynamicValue="What I Want To Show">
<!--- outputs value of Variables.DynamicValue --->
<cfoutput>#Variables[StaticValue]#</cfoutupt>
(这适用于所有范围/结构/查询/等)
注意:如果要在JavaScript字符串中输出变量,则需要将其包装在JsStringFormat(...)
中以确保转义相应的字符。
答案 1 :(得分:2)
首先,这是错误的:
<cfoutput>#<span id="demo"></span>#</cfoutput>
您建议存在名为
的CF变量<span id="demo"></span>
你的问题不明确,所以我的答案都不是,但我怀疑你是在尝试这样做:
<script type="text/javascript">
<cfoutput>
document.getElementById("demo").innerHTML="#StaticValue#";
</cfoutput>
</script>
<span id="demo"></span>
当此JavaScript在页面上运行时,字符串“DynamicValue”将写入span#demo。
答案 2 :(得分:0)
您是否正在尝试比较它们是否相同,然后显示它们?
<cfset StaticValue="DynamicValue">
<cfif staticvalue is dynamicvalue>
<cfset DynamicValue="What I Want To Show">
<script type="text/javascript">
<cfoutput>
document.getElementById("demo").innerHTML="#DynamicValue#";
</cfoutput>
</script>
</cfif>
不确定您在此处尝试做什么 - 因为这会导致#
#
<cfoutput>#<span id="demo"></span>#</cfoutput>
应该是:
<cfoutput>
<span id="demo">
#dynamicvalue#
</span>
</cfoutput>
如果您只是想要显示一个网址:
<cfoutput>
<span id="demo">
<a href="#dynamicvalue#">#dynamicvalue#</a>
</span>
</cfoutput>