2010-07-02 5 views
0

J'essaie de créer un menu de sélection où l'on peut sélectionner un département et ensuite sélectionner des employés dans ce département. Associés choisit ...Comment lier un CFC directement à un menu de sélection?

Ok est le problème ici ... Je dois lier directement au cfc, car la liaison comme ceci:

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

T-ELLE PAS TRAVAIL. Il ne fait rien ... voici ce que deparment ressemble:

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

et voici le 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> 

moi avons essayé de le faire comme ceci:

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

Mais ce n » ai pas t travail ... obtenir une erreur d'analyse ..

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] 
+0

ignorer la partie dipslay et les valeurs .. je sais que c'est faux ... je veux juste savoir comment lier directement .. comme comment est-il supposé regarder? – Bri

+1

Pouvez-vous reformuler la question et peut-être supprimer les parties que vous mentionnez d'ignorer? Cela pourrait rendre la question un peu plus claire. Aussi, je présume que vous est à l'intérieur du ? Enfin, votre CFC est-il dans le même répertoire que votre fichier CFM? –

+0

pourquoi utiliser url: au lieu de cfc:? Avez-cfc: pas travailler pour vous? – Henry

Répondre

0

Le formulaire n'a pas la valeur department.value à moins qu'elle ne soit soumise et par conséquent votre liaison ne fonctionnera pas. Veuillez avoir votre second cfselect (employé) placé dans un cflayout et avoir dans votre événement onchange du 'service' cfselect pour soumettre le formulaire à la mise en page. Vous pouvez utiliser la méthode coldFusio.navigate() pour soumettre votre formulaire de département sur la mise en page de l'employé.