| TOSCRIPT | |
| 説明
ColdFusion 変数の値を JavaScript または ActionScript 変数に割り当てる、JavaScript または ActionScript 式を作成します。この関数を使用して、ColdFusion 文字列、数値、配列、構造体、およびクエリーを、同等の変数および値を定義する JavaScript または ActionScript シンタックスに変換することができます。 |
|
| 戻り値
指定された ColdFusion 変数値に対応する JavaScript または ActionScript 変数定義を含む文字列 |
|
| カテゴリ
変換関数、拡張可能関数 |
|
関数のシンタックスToScript(cfvar, javascriptvar, outputformat, ASFormat) |
|
| 関連項目
cfwddx、『ColdFusion MX 開発ガイド』の第9章の「WDDX JavaScript オブジェクト」 |
|
| ヒストリ
ColdFusion MX 7: この関数が追加されました。 |
|
| パラメータ
|
|
| 使用方法
JavaScript または ActionScript で ColdFusion 変数を使用するには、ToScript 関数が cfoutput 領域内にあり、シャープ記号 (#) で囲まれている必要があります。たとえば、次のコードは、ToScript 関数を使用して ColdFusion 変数を JavaScript 変数に変換します。 <cfset thisString="hello world">
<script type="text/javascript" language="JavaScript">
<cfoutput>
var #toScript(thisString, "jsVar")#;
</cfoutput>
</script>
ColdFusion は、このコードを実行するときに次のコードをクライアントに送信します。 <script type="text/javascript" language="JavaScript"> var jsVar = "hello world"; </script> HTML script タグで JavaScript コードを囲む必要があります。cfoutput タグは、script ブロックの内部で使用する必要はありません。このタグでブロックを囲むこともできます。 WDDX 方式の出力により、WDDXRecordset を作成する JavaScript コードが生成されます。その場合、各レコードセットエントリの中で重要なものは列名であり、レコードセットエントリの値は対応するクエリー列エントリの配列です。次のようになります。 WDDXQuery = new WddxRecordset(); col0 = new Array(); col0[0] = "John"; col0[1] = "John"; WDDXQuery["firstname"] = col0; col0 = null; col1 = new Array(); col1[0] = "Lund"; col1[1] = "Allen"; WDDXQuery["lastname"] = col1; col1 = null; WDDX 方式の出力を使用するには、cf_webroot/CFIDE/scripts/wddx.js スクリプトを最初にロードする必要があります。このスクリプトは、次の行に示すように JavaScript WDDX オブジェクトを定義します。 <script type="text/javascript" src="/CFIDE/scripts/wddx.js script"> </script> JavaScript での WDDX の詳細については、1339ページ、第9章の「WDDX JavaScript オブジェクト」 を参照してください。 ActionScript 方式の出力により、オブジェクトの配列を作成するコードが生成されます。その場合、配列は行番号でインデックス付けされ、オブジェクトは列名と列値のペアで構成されます。次のようになります。 ActionScriptQuery = new Array(); ActionScriptQuery[0] = new Object(); ActionScriptQuery[0]['firstname'] = "John"; ActionScriptQuery[0]['lastname'] = "Lund"; ActionScriptQuery[1] = new Object(); ActionScriptQuery[1]['firstname'] = "John"; ActionScriptQuery[1]['lastname'] = "Allen"; ActionScript 方式の配列では、ユーザーが "wddx.js" ファイルを含める必要はなく、Flash 形式フォーム上の ActionScript (たとえば onChange 属性) で使用可能な変数が作成されます。 outputformat パラメータが false の場合に ASFormat を true に設定すると、ToScript は New Array() の代わりに ActionScript の省略形 [] を使用し、New Object() の代わりに省略形 {} を使用します。これらの省略形を使用すると、ActionScript 検証を実行しなくても、ActionScript を cfform 属性に渡すことができます。ASFormat が false の場合、toScript はスクリプトに New Array() と New Object() を生成します。 |
|
| 例
次の例では、ColdFusion 文字列、配列、クエリーオブジェクトを JavaScript 変数に変換した結果を示します。JavaScript コードの文字列および配列も使用します。 <h2>ToScript</h2>
<h3>文字列変数の変換</h3>
<cfset thisString = "これは文字列です。">
<cfoutput>
<b>ColdFusion の thisString 変数</b><br>
#thisString#<br>
<br>
<strong>ToScript の出力 (thisString, "jsVar")</strong><br>
#ToScript(thisString, "jsVar")#<br>
<br>
<strong>JavaScript スクリプトで、thisString 変数を JavaScript に変換し、
結果の変数を出力 :</strong><br>
<script type="text/javascript" language="JavaScript">
var #ToScript(thisString, "jsVar")#;
document.write("jsVar in JavaScript is:" + jsVar);
</script>
</cfoutput>
<h3>配列の変換</h3>
<!--- 1 次元配列を作成および挿入 --->
<cfset myArray=ArrayNew(1)>
<cfloop index="i" from="1" to="4">
<cfset myArray[i]="これは配列要素です。" & i>
</cfloop>
<cfoutput>
<b>ColdFusion myArray 配列</b><br>
<!--- ColdFusion の myArray 配列の内容を書き込み --->
<cfloop index="i" from="1" to="#arrayLen(myArray)#">
myArry[#i#]:#myArray[i]#<br>
</cfloop>
<br>
<strong>ToScript の出力(myArray, "jsArray")</strong><br>
#toScript(myArray, "jsArray")#<br>
<br>
<strong>JavaScript で、myArray を JavaScript 変数に変換し、その内容を書き込み</strong><br>
<script type="text/javascript" language="JavaScript">
var #ToScript(myArray, "jsArray")#;
for (i in jsArray)
{
document.write("myArray[" + i + "]:" + jsArray[i] + "<br>");
}
</script>
<br>
<h3>クエリーの変換</h3>
ここでは、次のクエリーオブジェクトを WDDX 形式と
ActionScript タイプの両方の Javascript オブジェクトに変換します。<br>
<!--- データベースクエリーを実行します。 --->
<cfquery name="thisQuery" datasource="cfdocexamples">
SELECT FirstName,LastName
FROM employee
WHERE FirstName = 'John'
</cfquery>
<br>
ColdFusion のクエリー
<cftable query="thisQuery" headerlines="1" colheaders>
<cfcol align="left" width="9" header="<b>FirstName</b>" text="#FirstName#">
<cfcol align="left" width="9" header="<b>LastName</b>" text="#LastName#">
</cftable>
<strong>ToScript によって生成される JavaScript (thisQuery, "WDDXQuery"):</strong><br>
#toScript(thisQuery, "WDDXQuery")#;<br>
<br>
<strong>ToScript によって生成される JavaScript (thisQuery, "ActionScriptQuery",
False):</strong><br>
#toScript(thisQuery, "ActionScriptQuery", False)#<br>
<br>
<!--- WDDX および ActionScript の両形式への変換 --->
<script type="text/javascript" language="JavaScript">
#ToScript(thisQuery, "WDDXQuery")#;
#ToScript(thisQuery, "ActionScriptQuery", False)#;
</script>
<!--- 簡潔にするために、この例では JavaScript クエリー変数を使用していません。 --->
</cfoutput>
|
|
| CFVAR | |
ColdFusion 変数です。次のいずれかを含めることができます。
|
|
| JAVASCRIPTVAR | |
| ToScript 関数によって作成される JavaScript 変数の名前を指定する文字列です。 | |
| OUTPUTFORMAT | |
オプションです。構造体およびクエリーについて、WDDX (JavaScript) 方式または ActionScript
方式の出力を作成するかどうかを指定するブール値です。
|
|
| ASFORMAT | |
オプションです。ActionScript の省略形を使用したスクリプトを生成するかどうかを指定する
ブール値です。
|
|