1

我正在尝试使用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>
4

3 回答 3

3

要将现有字符串/变量用作变量名,您需要使用括号表示法。

在 CF 中,如果您没有显式地确定变量的范围,它会在Variables范围内创建,因此您可以执行以下操作:

<cfset StaticValue="DynamicValue">

<cfset DynamicValue="What I Want To Show">

<!--- outputs value of Variables.DynamicValue --->
<cfoutput>#Variables[StaticValue]#</cfoutupt>

(这适用于所有范围/结构/查询/等)

注意:如果要在 JavaScript 字符串中输出变量,则需要将其包装起来JsStringFormat(...)以确保对适当的字符进行转义。

于 2012-06-12T13:41:51.497 回答
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。

于 2012-06-12T11:42:24.057 回答
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> 

如果您只是想显示一个 url:

<cfoutput>
<span id="demo">
<a href="#dynamicvalue#">#dynamicvalue#</a>
</span>
</cfoutput> 
于 2012-06-12T12:00:07.590 回答