如果我说错了标题,我道歉。
我有一个包含多个输入框的大表,需要获取内部单元格的值。
我能够获得日期,燃气金额/总金额和总金额,但不能获得其余的金额。
我仍然需要能够获得所有其他输入框的值。
我不太确定该去哪里,但我认为你需要两个名字。
此表格提交给pdf,我在其中获取值。
表单代码:
<cfloop from="1" to="#ArrayLen(labels)#" index="r">
<tr>
<td class="labels"><cfif ArrayIsDefined(labels,r) AND labels[r] NEQ "Open1">
<cfif labels[r] EQ "Open">
<input type="text" name="descript#r#" class="description" value="Enter text here" style="width:auto;" />
<cfelse>
#labels[r]#
</cfif>
</cfif></td>
<cfloop from="1" to="7" index="i">
<td id="Day#i#" class="row#r# col#i#"><cfif r EQ 1>
#Left(DayOfWeekAsString(i),3)#
<cfelse>
<cfif r EQ 2>
<input type="text" class="date-mask" name="dates#i#" />
<cfelse>
<input type="text"
<cfif labels[r] EQ "Personal Car: Mileage ##"> id="gasamount#i#" <cfelseif labels[r] EQ "Personal Car: Mileage $">id="gasmoney#i#" </cfif><cfif labels[r] EQ "Daily Totals">id="dailytotals#i#"</cfif>
class="<cfif labels[r] EQ "Personal Car: Mileage ##">gasamount<cfelse><cfif labels[r] NEQ "Daily Totals">C#i#</cfif></cfif>
<cfif labels[r] EQ "Personal Car: Mileage $">gasmoney<cfelse>calc R#r#</cfif>
<cfif labels[r] EQ "Daily Totals">ttlC#i#</cfif>"
<cfif labels[r] EQ "Daily Totals" OR labels[r] EQ "Personal Car: Mileage $" OR labels[r] EQ "Open1">readonly="readonly"</cfif>
name="<cfif labels[r] NEQ "Personal Car: Mileage ##" AND labels[r] NEQ "Personal Car: Mileage $" AND labels[r] NEQ "Dates:" AND labels[r] NEQ "Open1" AND labels[r] NEQ "Daily Totals">R#r# C#i#</cfif>
<cfif labels[r] EQ "Personal Car: Mileage ##">gasamt#i#</cfif>
<cfif labels[r] EQ "Daily Totals">celltotals#i#</cfif>
<cfif labels[r] EQ "Personal Car: Mileage $">gastot#i#</cfif>"
/>
</cfif>
</cfif></td>
</cfloop>
<td class="totals"><cfif r EQ 1>
Total
<cfelse>
<input type="text" id="totals" class="ttlR#r#" name="totals#r#" readonly="readonly" />
</cfif></td>
</tr>
</cfloop>
PDF代码:
<cfloop from="1" to="#ArrayLen(labels)#" index="r">
<tr>
<td class="labels"><cfif ArrayIsDefined(labels,r) AND labels[r] NEQ "Open1">
<cfif labels[r] EQ "Open">
<span>#form['descript' & r]#</span>
<cfelse>
#labels[r]#
</cfif>
</cfif></td>
<cfloop from="1" to="7" index="i">
<td id="Day" class="row#r# col#i#"><cfif r EQ 1>
#Left(DayOfWeekAsString(i),3)#
<cfelse>
<cfif labels[r] EQ "Date:">
<span style="width:60px;">#form['dates' & i]#</span>
<cfelse>
<span style="width:60px;">
<cfif labels[r] EQ "Personal Car: Mileage ##">
#form[" " & 'gasamt' & i & " "]#
</cfif>
<cfif labels[r] EQ "Personal Car: Mileage $">
#form[" " & 'gastot' & i]#
</cfif>
<cfif labels[r] EQ "Daily Totals">
#form[" " & 'celltotals' & i & " "]#
</cfif>
<cfif labels[r] NEQ "Personal Car: Mileage ##" AND labels[r] NEQ "Personal Car: Mileage ##" AND labels[r] NEQ "Dates:" AND labels[r] NEQ "Open1" AND labels[r] NEQ "Daily Totals">
#form['R' & r & " "]#
</cfif>
</cfif>
</cfif>
</span></td>
</cfloop>
<td class="totals" style="width: 60px;"><cfif r EQ 1>
Total
<cfelse>
<span style="text-align:right;">#form['R' & r & " " & 'C' & i & " "]#</span>
</cfif></td>
</tr>
</cfloop>
我在这些对象中添加了空格,因为名称似乎在不同的地方都有空格,但代码中没有空格。
我提交页面时出现错误,因为我正在尝试引用表单元素。
提前感谢您花时间寻求帮助。
答案 0 :(得分:0)
我不知道这是不是问题,但是......
这段代码:
<cfif labels[r] NEQ "Personal Car: Mileage ##"
AND labels[r] NEQ "Personal Car: Mileage $"
AND labels[r] NEQ "Dates:"
AND labels[r] NEQ "Open1"
AND labels[r] NEQ "Daily Totals">R#r# C#i#</cfif>
将为您提供一个带有空格的表单变量。你可以用HTML来逃避它,但有效的ColdFusion变量名不能包含空格。您可以使用括号表示法来解决它,但为什么要冒险呢?
您是否使用CFDUMP检查表单是否返回了您期望的值?
编辑:哎呀,几乎所有的输入元素都因为空格而在名称中有空格。这会对您的操作页面和JavaScript造成严重破坏。
这是您第一个代码块的临时更新。它并不完美,但它不会改变逻辑,最终会让你更好地格式化HTML。
<cfloop from="1" to="#ArrayLen(labels)#" index="r">
<tr>
<td class="labels">
<cfif ArrayIsDefined(labels,r) AND labels[r] NEQ "Open1">
<cfif labels[r] EQ "Open">
<input type="text" name="descript#r#" class="description" value="Enter text here" style="width:auto;" />
<cfelse>
#labels[r]#
</cfif>
</cfif>
</td>
<cfloop from="1" to="7" index="i">
<td id="Day#i#" class="row#r# col#i#">
<cfif r EQ 1>
#Left(DayOfWeekAsString(i),3)#
<cfelse>
<cfif r EQ 2>
<input type="text" class="date-mask" name="dates#i#" />
<cfelse>
<cfset tempid="" />
<cfif labels[r] EQ "Personal Car: Mileage ##">
<cfset tempid="gasamount#i#" />
<cfelseif labels[r] EQ "Personal Car: Mileage $">
<cfset tempid="gasmoney#i#" />
<cfelseif labels[r] EQ "Daily Totals">
<cfset tempid="dailytotals#i#" />
</cfif>
<cfset tempclass="" />
<cfif labels[r] EQ "Personal Car: Mileage ##">
<cfset tempclass="gasamount" />
<cfelse>
<cfif labels[r] NEQ "Daily Totals">
<cfset tempclass="C#i#" />
</cfif>
</cfif>
<cfif labels[r] EQ "Personal Car: Mileage $">
<cfset tempclass="gasmoney" />
<cfelse>
<cfset tempclass="calc R#r#" />
</cfif>
<cfif labels[r] EQ "Daily Totals">
<cfset tempclass="ttlC#i#" />
</cfif>
<cfset tempreadonly="" />
<cfif labels[r] EQ "Daily Totals" OR labels[r] EQ "Personal Car: Mileage $" OR labels[r] EQ "Open1">
<cfset tempreadonly="readonly=""readonly""" />
</cfif>
<cfset tempname="" />
<cfif labels[r] NEQ "Personal Car: Mileage ##" AND labels[r] NEQ "Personal Car: Mileage $" AND labels[r] NEQ "Dates:" AND labels[r] NEQ "Open1" AND labels[r] NEQ "Daily Totals">
<cfset tempname="R#r# C#i#" />
</cfif>
<cfif labels[r] EQ "Personal Car: Mileage ##">
<cfset tempname="gasamt#i#" />
</cfif>
<cfif labels[r] EQ "Daily Totals">
<cfset tempname="celltotals#i#" />
</cfif>
<cfif labels[r] EQ "Personal Car: Mileage $">
<cfset tempname="gastot#i#" />
</cfif>
<input type="text" id="#tempid#" class="#tempclass#" #tempreadonly# name="#tempname#" />
</cfif>
</cfif>
</td>
</cfloop>
<td class="totals">
<cfif r EQ 1>
Total
<cfelse>
<input type="text" id="totals" class="ttlR#r#" name="totals#r#" readonly="readonly" />
</cfif>
</td>
</tr>
</cfloop>
虽然您可以将CFML与HTML输出混合使用,但它很快就会失控。作为一般规则,您希望使用纯CFML进行尽可能多的处理和决策,然后只输出一些变量。