Выполнение компонента ajax http://path/to/my/component.cfc?method=something не выполняет метод - PullRequest
0 голосов
/ 04 августа 2009

У меня есть CFC с удаленной функцией, и я пытаюсь вставить его в элемент cfselect моей страницы cfm. Но я не получаю ничего в избранном.

Я пытался выполнить cfc напрямую, но метод, который я вызываю, не выполняется.

Вот код для ХФУ:

    <cfcomponent output="false">
        <cffunction name="getYear" access="remote" returnType="query">

            <cfset yearlist = QueryNew("yr","integer")>
            <cfset temp = QueryAddRow(yearlist,3)>
            <cfset counter = 1>
            <cfloop from="#evaluate(year(Now())-1)#" to="#evaluate(year(Now())+1)#" index="y">
                <cfset temp = QuerySetCell(yearlist,"yr",y,counter)>
                <cfset counter = counter + 1>
            </cfloop>

            <cfreturn yearlist>
        </cffunction>
</cfcomponent>

Вот код для CFM

    <body>

    <cfform>

    <table>
        <tr>
            <td>Select Year:</td>
            <td><cfselect name="yearval"
                        bind="cfc:cfc.ajaxcomp.getYear()"
                        value="yr"  
                        display="yr"
                        bindonload="true" /></td>
        </tr>
    </table>

    </cfform>

</body>

Не могли бы вы сказать мне, что мне здесь не хватает?

Спасибо!

1 Ответ

1 голос
/ 01 сентября 2009

Так что следующий код работает для меня. Я изменил несколько вещей, так трудно понять, что сделал, но:

  1. Var-область переменных
  2. Удалена некоторая сложность
  3. Изменен столбец запроса с целого на varchar

-

<cfcomponent output="false">
    <cffunction name="getYear" access="remote" returnType="query">

        <cfset var y = 0 />
        <cfset var yearList = QueryNew("yr","varchar")>

        <cfloop from="#year(Now())-1#" to="#year(Now())+1#" index="y">
            <cfset queryAddRow(yearList) />
            <cfset QuerySetCell(yearList,"yr",y)>
        </cfloop>

        <cfreturn yearlist>
    </cffunction>
</cfcomponent>
...