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 の省略形を使用したスクリプトを生成するかどうかを指定する
ブール値です。
|