Ошибка привязки ColdFusion ‹cfselect›

Я пытаюсь заполнить раскрывающийся список на основе выбора пользователя, сделанного в предыдущем раскрывающемся списке. Оба раскрывающихся списка имеют одинаковую форму. Каждый раскрывающийся список должен быть заполнен двумерным массивом, содержащим информацию из базы данных, переданную в cffunction (getClients) в cfcomponent (EasySelection). Следующая ошибка появляется, когда я пытаюсь запустить страницу в моем браузере (последняя версия FireFox). Я также попытался заменить код атрибута привязки следующим: «cfc: bindFcns.getClients ()» ... в котором я получаю то же сообщение об ошибке.

Вот сообщение об ошибке ниже:

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>

Ваша помощь очень ценится! Спасибо за ваше время.


person Jack    schedule 17.06.2011    source источник


Ответы (2)


Находится ли ваш EasySelection cfc в каталоге timetotals? В сообщении об ошибке необходимо указать полный путь к CFC. Так, например, если ваш CFC находится в каталоге «cfcs» в корне вашего сайта, вы должны указать его как cfc: cfcs.EasySelection. Если указать его как cfc: EasySelection, ColdFusion проверит корневой каталог, и в данном случае текущий каталог "timetotals".

person Sean Coyne    schedule 17.06.2011

Укажите полный путь к вашему файлу cfc. Если ваш EasySelection находится в папке CFC, тогда это должно быть cfc: cfc.EasySelection. Если вы работаете на локальном хосте с отдельным каталогом, вам может потребоваться написать что-то вроде cfc: [путь к папке вашего приложения] .cfc.EasySelection.

Короче говоря, вам необходимо указать относительный путь к cfc от корня вашего веб-сайта.

person Pritesh Patel    schedule 18.06.2011