首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可变cfform值-嵌套井号

可变cfform值-嵌套井号
EN

Stack Overflow用户
提问于 2012-08-31 22:59:59
回答 1查看 307关注 0票数 4

我遇到了一个问题。我使用cfoutput在表单中运行查询结果。有几个cfselect是动态命名的,如entry_1、entry_2等。然后,这些cfselect被传递给一个带有url中记录计数的actionpage alonge,在那里我想用一个cfloop将它们插入到数据库中。

代码语言:javascript
复制
<cfloop from="1" to="#url.Count#" index="i">  
<cfquery name="id_#i#" datasource="xxx">Insert Into table1(entry_level) Values(#form.entry_#i##)</cfquery>  
</cfloop>  

它每次都抛出一个错误。我已经尝试使用数组格式,但我仍然不能让它工作。请帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-31 23:09:27

您不能以这种方式构造动态结构选择器。您可以执行以下操作来获得相同的结果。

因此,使用以下数据:

代码语言:javascript
复制
<cfset url.count = 3>
<cfset form.entry_1 = 1>
<cfset form.entry_2 = 2>
<cfset form.entry_3 = 3>

像这样的东西是可行的-

代码语言:javascript
复制
<cfloop from="1" to="#url.Count#" index="i">  
  <cfquery name="id_#i#" datasource="xxx">
    Insert Into table1(entry_level) Values(#form['entry_' & i]#)
  </cfquery>  
</cfloop>  

ColdFusion基本上提供了两种方法来访问结构的值,或者通过。表示法或通过括号。如果您试图通过动态键访问结构,则必须使用括号。

顺便说一句,稍微更好的是:

代码语言:javascript
复制
   <cfloop from="1" to="#url.Count#" index="i">  
      <cfquery name="id_#i#" datasource="xxx">
        Insert Into table1(entry_level) Values(<cfqueryparam value="#form['entry_' & i]#">)
      </cfquery>  
    </cfloop>  

cfQueryParam会自动转义该条目,因此您不必担心SQL注入攻击。它还可以使查询的效率稍微提高一些。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12217953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档