防止YES/NO值转换为真/假Coldfusion 9?

esp*_*fee 0 coldfusion coldfusion-9 cfml

我有一个表单,用户必须从列表中选择值.列表由管理员创建.在其中一个列表中,有一个选项供用户选择NO代表某些保留代码的值.有点像Not Occupied.所以我使用JQuery和AJAX与服务器进行通信.在后端我在生产服务器上使用ColdFusion 9.所以为了带回来,NO我必须将其转换'NO '为空间.如果我不这样做,则会false在客户端返回值.以下是我的代码转换示例:

<cfset convertYesNo = {
    YES : "YES ",
    NO : "NO "
}>

<cfset qryRecs['value'] = URLEncodedFormat(structKeyExists(convertYesNo, myInfo[CurrentRow]) ? convertYesNo[myInfo[CurrentRow]] : myInfo[CurrentRow])>
Run Code Online (Sandbox Code Playgroud)

上面的代码在我的开发网站上运行良好.唯一的区别是,在发展我们的ColdFusion 10和现场我们的ColdFusion 9,所以一旦我搬到一起住,我开始收到错误消息的代码:

ColdFusion was looking at the following text&#x3a;<p>&#x7b;</p><p>The CFML compiler was processing&#x3a;<ul><li>A cfset tag beginning on line 1071, column 18.<li>A cfset tag beginning on line 1071, column 18.

<pre>1069 :         }&gt;
1070 :      
<b>1071 :       &lt;cfset convertYesNo = {</b>
1072 :          &quot;Yes&quot; : &quot;Yes &quot;,
1073 :          &quot;No&quot; : &quot;No &quot;
</pre>
Run Code Online (Sandbox Code Playgroud)

我试图在YES和NO周围加上引号,但这并没有帮助.如果有人知道如何解决这个问题,请告诉我.提前致谢!

RRK*_*RRK 6

我认为CF9的结构符号不支持这种语法.尝试以下(=而不是:分隔键值对).

<cfset convertYesNo = {
    YES = "YES ",
    NO = "NO "
}>
Run Code Online (Sandbox Code Playgroud)