2011-06-17 27 views
0

以前のドロップダウンリストでのユーザーの選択に基づいてドロップダウンリストを作成しようとしています。両方のドロップダウンリストは同じ形式になっています。各ドロップダウンリストには、cfcomponent(EasySelection)内の関数(getClients)内で渡されたデータベースの情報を含む2次元配列が設定されます。ブラウザ(最新バージョンのFireFox)でページを実行しようとすると、次のエラーが表示されます。私もバインド属性のコードを次のように置き換えようとしました: "cfc:bindFcns.getClients()" ...同じエラーメッセージが表示される。ここでColdFusion <cfselect>バインディングエラー

は、以下のエラーメッセージである:それはここでは、より有用である

場合
The specified CFC EasySelection could not be found. 
The path to the CFC must be specified as a full path, or as a relative path from the current template, without the use of mappings. 

The error occurred in C:\workspaces\jackscotty\timecard.dev\webroot\timetotals\index.cfm: line 180 
 
    178 : <td colspan="2"> 
    179 : <cfSELECT NAME="paramCompanyID" 
    180 : **bind="cfc:EasySelection.getclients()" bindOnLoad="true">** 
    181 : <OPTION VALUE="-1" SELECTED>Any</OPTION> 
    182 : </cfSELECT> 

EasySelection.cfcのための私のコードは次のとおりです。

 
<cfcomponent output="false"> 
    <cffunction name="getclients" access="remote" returntype="array"> 
     <CFQUERY NAME="qGetClients" DATASOURCE="#application.DSN#"> 
      SELECT * FROM companies 
      WHERE clientflag = 1 
      ORDER BY company 
     </CFQUERY> 
     <cfset count = 1 /> 
     <cfset clientresults = arraynew(2) /> 
     <cfloop query="qGetClients"> 
      <cfset clientresults[count][1]="#companyid#" /> 
      <cfset clientresults[count][2]="#companyid#" /> 
      <cfset count= count+1 /> 
     </cfloop> 
     <cfreturn clientresults /> 
    </cffunction> 
    <cffunction name="getprojects" access="remote"> 
     <cfargument name="companyid" type="string" required="yes" /> 
     <cfquery name="qGetProjects2" datasource="#application.DSN#"> 
      SELECT * FROM projects 
      WHERE companyid = '#companyid#' 
      ORDER BY companyid 
     </cfquery> 
     <cfset count = 1 /> 
     <cfset projectresults = arraynew(2) /> 
     <cfloop query="qGetProjects2"> 
      <cfset projectresults[count][1]="#projectid#" /> 
      <cfset projectresults[count][2]="#projectid#" /> 
      <cfset count= count+1 /> 
     </cfloop> 
     <cfreturn projectresults> 
    </cffunction> 
</cfcomponent> 

あなたのヘルプは素晴らしいですありがとう!御時間ありがとうございます。

答えて

1

EasySelection cfcはtimetotalsディレクトリにありますか?エラーが発生すると、CFCのフルパスを指定する必要があります。たとえば、CFCがサイトのルートにある "cfcs"ディレクトリにある場合は、cfc:cfcs.EasySelectionとして指定します。これをcfc:EasySelectionとして指定することで、ColdFusionはルートディレクトリをチェックし、この場合は現在のディレクトリ "timetotals"をチェックします。

0

cfcのフルパスを入力します。 EasySelectionがCFCフォルダの下にある場合は、cfc:cfc.EasySelectionでなければなりません。 localhostの下で別のディレクトリを使用している場合は、cfc:[your application folder path] .cfc.EasySelectionのようなものを書く必要があります。

要するに、ウェブサイトのルートからcfcの相対パスを指定する必要があります。

関連する問題