1

私は現在、従業員感謝賞の Web アプリに機能を追加する ColdFusion (CF) プロジェクトに取り組んでいます。

私が抱えている問題は、選択された Web ページに戻るときに cfselect 値を保持する方法です。

現在、nomination.cfm は #1 ドロップダウン メニューにサブ部門の名前を入力します。これは、nomination.cfc cffunction getDept から呼び出されます。それが選択されると、「部門」が cfargument として nomination.cfc cffunction getEmp に渡されます。

1. Select the location where your nominee works: 
<cfselect name="department" bind="cfc:nominee.getDept ()" bindonload="true" />

2. Select the nominee from the list below
<cfselect name="employee" bind="cfc:nominee.getEmp ({department})" />

このコードはすべて、summary.cfm に送信される cfform 内にあります。summary.cfm には、nomination.cfm に戻る編集ボタンがあります。使った

<input type="button" value="    Edit   " onclick="history.go(-1);">

しかし、#1 と #2 は選択した値を保持せず、代わりに元のドロップダウン メニュー リストにデフォルト設定されました。cfcバインディングは「選択」できないというドキュメントを読んだので、途方に暮れています。よろしくお願いします。

以下は、nomination.cfc コードです。

    <!--- Get array of media types --->
    <cffunction name="getDept" access="remote" returnType="array">

        <!--- Define variables --->
        <cfset var data="">
        <cfset var result=ArrayNew(2)>
        <cfset var i=0>     

        <!--- Get data --->
        <cfquery name="data" datasource="HatsOff">
        SELECT account_number, account_title
        FROM departments
        <cfif session.vdept is not "All" and session.vdept is not "Letter">
        WHERE [departmentname] = '#session.vdept#'  
        </cfif>
        ORDER BY account_title
        </cfquery>

        <!--- Convert results to array --->
        <cfloop index="i" from="1" to="#data.RecordCount#">
            <cfset result[i][1]=data.account_number[i]>
            <cfset result[i][2]=data.account_title[i]>
        </cfloop>

        <!--- And return it --->
        <cfreturn result>
    </cffunction>

    <!--- Get art by media type --->
    <cffunction name="getEmp" access="remote" returnType="array">
        <cfargument name="department" type="string" required="true">

        <!--- Define variables --->
        <cfset var data="">
        <cfset var result=ArrayNew(2)>
        <cfset var i=0>

        <!--- Get data --->
        <cfquery name="data" datasource="HatsOff">
        SELECT emp_id, emp_full_name
        FROM employees
        WHERE account_number = '#ARGUMENTS.department#'
        ORDER BY emp_full_name
        </cfquery>

        <!--- Convert results to array --->
        <cfloop index="i" from="1" to="#data.RecordCount#">
            <cfset result[i][1]=data.emp_id[i]>
            <cfset result[i][2]=data.emp_full_name[i]>
        </cfloop>

        <!--- And return it --->
        <cfreturn result>
    </cffunction>

</cfcomponent>
4

1 に答える 1

0

ColdFusion バージョン 11,0,15,311399 を使用しています。

「selected」属性は、次のように cfc バインドで機能します。

<cfselect selected="#Value#"  name="Access_Level_Code_New"
          size="1" 
          bind="cfc: APP_CFC.Example.GetAccessLevelSetRemote({Business_Area_Code_New},{System_Function_Code_New})" 
           bindonload="yes"
 >

新しい ColdFusion バージョンでも動作するはずです。

于 2018-10-15T18:00:40.057 に答える