2010-09-10 45 views
0

用户将输入他们的Id号码,然后会显示与此Id号码相关的帐户(单选按钮)。他们可以有1个甚至10个账户(单选按钮)。我需要让他们 将他们的帐户更新为Y,N。帐户ID是组成广播组的组成部分。现在我需要知道谁来循环这些单选按钮来查看他们选择的内容。Coldfusion中的动态单选按钮组

<cfif isDefined('FORM.bnt2')> 
    <cfloop index="i" list="#form.fieldnames#"> 
     <cfquery name="accept" datasource="#request.dsn#"> 
      UPDATE opt SET 
      f14 = '#evaluate(i)#' 
      WHERE f4 = '#FORM.id#' 
     </cfquery> 
    </cfloop> 
</cfif>                

<cfform name="frm2" id="form2" method="post" action=""> 
    <cfinput type="radio" name="#f5#" value="y"> 
    <cfinput type="radio" name="#f5#" value="n"> 
    <cfinput type="hidden" name="id" value="#f4#" /> 
    <cfinput name="bnt2" type="image" class="btn" src="images/accept.gif" value="Submit"/> 
+0

表单名?或字段名称?如果转储表单范围,您应该能够看到所有内容,然后您可以遍历结构或字段名称列表来执行所需的任何操作。 – Henry 2010-09-10 15:40:09

+0

这是我正在尝试做的... UPDATE SET选择F14 = '#evaluate(ⅰ)#' 其中f4 = '#FORM.ssn#' 2010-09-10 15:43:47

+1

对于所有圣洁的爱...请不要使用#form.SSN#;)有很多工具可用于创建适用于一般/不安全形式的唯一标识符。 – Leigh 2010-09-10 20:57:53

回答

1

不要使用评价!

使用cfqueryparam!

并修复这些变量名称,f5,btn2等都不是好名字。


反正我不能完全肯定自己在做什么,但这里有一个代码片段你:

<cfoutput> 
<cfloop index="CurField" list="#Form.FieldNames#"> 
    <br/>#CurField#=#XmlFormat(Form[CurField])# 
</cfloop> 
</cfoutput> 

这应该给你你需要做的事情是什么工作。

注意XmlFormat用于显示 - 通常不在查询中完成(将数据存储在数据库中),而是在显示给浏览器时进行。 (如果您愿意,也可以使用HtmlEditFormat)。

+0

如果用户选择Y或N,我需要获取单选按钮的值。字段名将从数据库中的ID动态生成以形成无线组。当我尝试查找单选按钮的值时,我只会从提交按钮中获取值。 – 2010-09-10 17:22:12

+1

如果这两个选项都没有被点击,则结构中没有任何内容。只有选择其中一个选项时才会显示。 – jarofclay 2010-09-10 18:36:00

+0

选项被选中,我只是不知道更新数据库的无线电字段的名称,因为每次字段的名称都会有所不同()。 – 2010-09-10 19:03:45

0

谢谢大家的帮助,这里是我的最终解决方案。

<cfif isDefined("FORM.bnt2")> 
<cfloop index="id" list="#form.listofids#" delimiters=","> 
<cfquery name="accept" datasource="#request.dsn#"> 
UPDATE opt SET 
F14 = '#Evaluate("form.select_#id#")#' 
WHERE f5 = '#id#' 
</cfquery> 
</cfloop> 
</cfif> 


<cfform name="frm2" id="form2" method="post" action=""> 
<cfoutput query="accountCheck" > 
<cfinput type="radio" name="select_#f5#" value="y" required="yes" validateat="onsubmit" message="A value of Yes or No is required."> 
<cfinput type="radio" name="select_#f5#" value="n" required="yes" validateat="onsubmit" message="A value of Yes or No is required."> 
<cfinput type="hidden" name="listofids" value="#ValueList(accountCheck.f5)#" > 
</cfoutput> 
<cfinput name="bnt2" type="image" class="btn" src="images/accept.gif" value="x" style="float:right;" /> 
</cfform> 
+1

再看看Peter Boughton的建议。你可以做出几项改进。特别是关于cfqueryparam的说明。顺便说一句:你真的把SSN存储在一个隐藏的领域..? – Leigh 2010-09-13 00:15:34