调用一个变量,其名称中的变量 - ColdFusion的?(Calling a variable

2019-07-31 14:41发布

试图使用squarebracket符号引用的动态变量。 (我通过循环一组由查询创建的产品,从而为每一个绑在他们独特的SKU领域,如果你想知道有关应用程序)

我已经收窄,这一大块的代码,当我尝试运行它会抛出一个“无效的表达式”的错误。

<cfif FORM["QTY_" & SKU] NEQ ''>
    <div class="sopQty"><input type="number" min="0" name="QTY_#SKU#" value = "#FORM['QTY_' & SKU]#" /></div>
<cfelse>
    <div class="sopQty"><input type="number" name="QTY_#SKU#" /></div>
</cfif>

我们的目标是从上页传递值(如果有),否则将该字段留空。 我想有在这种情况下,我一直无法找出语法的一些怪癖。 误差在下文块:

类型:模板

消息:无效的表达

标签:CFIF

位置线= 62; 柱= 17

详细为表达[#FORM [ 'QTY_' &SKU])#]

资源

 60: <div class="sopSearch"><p>#SearchAlias#</p></div> 61: <div class="sopPrice"><p>#ISBNupc#</p></div> 62: <cfif FORM["QTY_" & SKU] NEQ ''> 63: <div class="sopQty"><input type="number" min="0" name="QTY_#SKU#" value = "#FORM['QTY_' & SKU])#" /></div> 64: <cfelse> 

^从底层CFML源代码段

有什么建议?

Answer 1:

这只是一个例子,因为我不知道你在哪里设置你的变量,但你可以试试你的操作页面在以下方面:

<cfset SKU = "123">
<cfset dynamic_Var = "QTY_" & variables.SKU>
<cfif IsDefined("form[dynamic_Var]")>
  <cfoutput>#form[dynamic_Var]#</cfoutput>
<cfelse>
  fail
</cfif>

这里是提交形式:

<form name="test" action="test.cfm">
    <input type="text" name="QTY_123" value="test">
    <input type="submit" name="submit" value="submit">
</form>


Answer 2:

下面也有可能(如果关键是没有定义不会导致错误)。

<cfset key = "QTY_" & sku/>
<cfif structKeyExists(form, key) && len(form[key])>
  <!--- do something --->
</cfif>


文章来源: Calling a variable with a variable in its name - coldfusion?