尝试使用方括号表示法来引用动态变量。 (我正在循环查询创建的一组产品,如果您对应用程序感到疑惑,则为每个与其唯一SKU相关的字段创建字段)
我已将其缩小到这段代码,当我尝试运行它时会抛出“Invalid Expression”错误。
<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_'&amp; 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源的片段
有什么建议吗?
答案 0 :(得分:3)
这只是一个示例,因为我不知道您在哪里设置变量,但在您的操作页面上尝试以下内容:
<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>
答案 1 :(得分:0)
下面也是可能的(如果未定义密钥,则不会导致错误。)
<cfset key = "QTY_" & sku/>
<cfif structKeyExists(form, key) && len(form[key])>
<!--- do something --->
</cfif>