2017-10-26 12 views
0

私はユーザーがリストから値を選択する必要があるフォームを持っています。リストは管理者によって作成されます。リストの1つでは、ユーザーがNO値を選択するオプションがあり、これは予約済みコードの略です。 Not Occupiedのようなものです。だから、私はJQueryとAJAXを使ってサーバーと通信します。バックエンドでは、プロダクションサーバーでColdFusion 9を使用します。だから、NOを返すためには、スペースを使って'NO 'に変換する必要があります。私がこの機能をしなければ、クライアント側でfalseの値を返します。私のコード変換の例を次に示します。はい/いいえの値をtrue/falseに変換しないようにします。Coldfusion 9?

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

<cfset qryRecs['value'] = URLEncodedFormat(structKeyExists(convertYesNo, myInfo[CurrentRow]) ? convertYesNo[myInfo[CurrentRow]] : myInfo[CurrentRow])> 

上記のコードは私の開発サイトでうまくいきました。

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> 

私はYESと前後に引用符を入れて試してみました:唯一の違いは、開発に私たちは、ColdFusion 10持っていると私は生きるためにコードを移動したら、ライブに私たちは、私は、エラーメッセージが出始めたので、ColdFusionの9を持っているということですいいえ、それは助けにはなりませんでした。誰かがこの問題を解決する方法を知っているなら私に知らせてください。前もって感謝します!

+0

は、あなたがのJavaCastを使用することができます(「strin g "、" No ")、自動的に望ましくないものに再変換されますか? JSONに変換するときにJSONUtilライブラリを使用し、JavaCast( "boolean"、1)を使用してJSONで引用符で囲まれていないTRUE/FALSE値を作成します。 –

答えて

6

私はCF9の構造体表記法がこの構文をサポートしていないと思います。以下を試してください(:のキーと値のペアを区切る代わりに=)。

<cfset convertYesNo = { 
    YES = "YES ", 
    NO = "NO " 
}> 
+0

それは正しいです。ご協力いただきありがとうございます! –

+0

これは私が得ている2番目のエラーです。 JSONデータの行1の列13714のプロパティ値の後に、SyntaxError:JSON.parse:expected '、'} 'が返される –

+0

@ espresso_coffeeコンテキストがわからない。コードを見ずに私は確かに何も言えません/ – RRK

0

<cfset qryRecs['value'] = URLEncodedFormat(structKeyExists(convertYesNo, myInfo[CurrentRow]) ? convertYesNo[myInfo[CurrentRow]] : myInfo[CurrentRow])>

構造体(ハッシュテーブル)キーの速い発見に素晴らしいですが、あなたはここでしか2の鍵を持っているので、はるかに効率的な構築物は、(CFScriptの構文の例)のようになります。

qryRecs['value'] = URLEncodedFormat(
    listFindNoCase("YES,NO", myInfo[CurrentRow]) ? 
     uCase(myInfo[CurrentRow]) & " " 
      : 
     myInfo[CurrentRow] 
); 

けれども、あなたが複数の文にそれを壊すために検討すべきで読みやすく、コードのメンテナンスのため:

value = myInfo[CurrentRow]; 
if (value == "YES" || value == "NO")   // use EQ operator in CFML syntax 
    value = uCase(value) & " "; 

qryRecs['value'] = URLEncodedFormat(value); 
関連する問題