0

部門を選択し、その部門の従業員を選択できる選択メニューを作成しようとしています。関連する選択...

ここに問題があります...次のようにバインドするため、cfcに直接バインドする必要があります。

<cfselect name="people" bind = "cfc:test.getPeople({department.value})" />

動作しません。それは何もしません... deparment は次のようになります。

<cfselect name="department"
        query="getDepartments"
        display="deptname"
        value="deptcode" 
        queryPosition = "below">
        <option value = "">Select a Department</option>
        </cfselect>

そしてここにcfc:

<cfcomponent>

    <cfset THIS.dsn="sqlProd_faculty_db">


    <!--- Get art by media type --->
    <cffunction name="getPeople" access="remote" returnType="query" >
        <cfargument name="dcode" type="any" required="true">

        <!--- Define variables --->
        <cfset var data="">


        <!--- Get data --->
        <cfquery name="data" datasource="#THIS.dsn#">
        SELECT  b.LastName + ', ' + b.FirstName AS FullName, p.IDNum FROM faculty.dbo.SACS_Person p, faculty.dbo.budPerson 
      b WHERE p.DeptCode = '#arguments.dcode#' AND p.IDNum = b.ID ORDER BY b.LastName, 
        b.FirstName
        </cfquery>


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

</cfcomponent>

私はこのようにしてみました:

<cfselect name="people"
        bind = "url:test.cfc?method=getPeople&returnFormat=json&dcode={department.value}" 
        display = "FullName" value = "IDNum"
        BindOnLoad = "true" />

しかし、それはうまくいきませんでした...解析エラーが発生しました..

Error parsing JSON response: 



<script language="javascript">

<!--

document.onkeydown = catchKey;

step1 = 0;

step2 = 0;



function catchKey(e){

   if(window.event.keyCode == 17){

      step1 = 1;

   }

   if(window.event.keyCode == 18){

      step2 = 1;

   }

   if(window.event.keyCode == 65){

      if(step1 && step2){

         newLevel = prompt("Level:", "new Level");

         step1 = 0; step2 = 0;

         gotostring = "./admin_macros.cfm?NewLevel=" + newLevel + "&Action=LevelChange";

         window.location = gotostring;

      }

   }

}

-->

</script>

{"COLUMNS":["FULLNAME","IDNUM"],"DATA":[]} [Enable debugging by adding 'cfdebug' to your URL parameters to see more information]
4

1 に答える 1

0

フォームが送信されない限り、フォームには department.value が定義されていないため、バインドは機能しません。2 番目の cfselect(employee) を cflayout に配置し、「部門」cfselect の onchange イベントでフォームをレイアウトに送信してください。coldFusio.navigate() メソッドを使用して、部門フォームを従業員レイアウトに送信できます。

于 2011-05-04T11:52:34.610 に答える