我有一个传递变量的表格,里面有很多隐藏的输入,然后是一个提交。这是一些代码:
<input type = "hidden" name = "templname" value = '#templname#'>
<input type = "hidden" name = "attloc" value = '#extattloc#'>
<input type = "hidden" name = "cctype" value = 'f'>
<input type = "hidden" name = "merls" value = '#merls#'>
<input type = "hidden" name = "invnum" value = '#invnum#'>
<cfif ArrayIsDefined(selvalarr,1)>
<cfloop array = "#selvalarr#" index = "att">
<input type = "hidden" name = "att" value ="#att#">
</cfloop>
</cfif>
<cfloop array = "#letarr#" index = "let">
<input type = "hidden" name = "let" value = '#let#'>
</cfloop>
<input type = "submit"
class = 'repbutton onoffbut'
style = 'height:75px;'
id = "runemail"
value = "run email" >
</form>
</td>
一切都是您所期望的-除了letarr上的循环。尽管输入明显被隐藏,但变量#let#正在转储到页面上。这是变量“ let”的样子(2个值)。此输出来自以下代码:
<cfloop array = "#letarr#" index = "let">
<br>#let#
</cfloop>
这是隐藏输入给我的:
除了“运行电子邮件”按钮外,什么都没有。
我已经完成了数组“ letarr”的直接输出,这是正确的(请参见上文)。我检查过,将其包含在<td
标记内不是问题。我认为这与变量有关,也许是多行。
外面有没有人知道是什么原因造成的?或如何解决?
答案 0 :(得分:5)
执行几个步骤。
执行<cfdump var="#letarr#">
以确保没有意外值。
确保保护变量免于注入
<cfloop array = "#letarr#" index = "let">
<input type = "hidden" name = "let" value = '#EncodeForHTMLAttribute(let)#'>
</cfloop>
我真的很想知道您的字符串中是否缺少引号或看起来像是引号的奇怪东西。我会找一个回勾,一个聪明的(又名哑巴)报价和重音符号之类的东西。您的结果看起来像是在某处的HTML上放弃了
答案 1 :(得分:0)
始终尝试使用public static DateTimeFormatInfo CurrentInfo
{
get
{
CultureInfo currentCulture = CultureInfo.CurrentCulture;
if (!currentCulture._isInherited)
{
DateTimeFormatInfo dateTimeInfo = currentCulture.dateTimeInfo;
if (dateTimeInfo != null)
return dateTimeInfo;
}
return (DateTimeFormatInfo) currentCulture.GetFormat(typeof (DateTimeFormatInfo));
}
}
来避免此类问题。