2011-11-17 4 views
1

J'utilise cfajaxproxy pour extraire les données de DB et les afficher. Par exemple, j'ai une liste déroulante qui a le code du pays. En cas de changement du code du pays, il doit afficher le nom de pays correct à partir de db. mais son retour valeur indéfinie. Ci-dessous le codecfajaxproxy renvoyant undefined

<cfajaxproxy cfc="cfcProxy" > 

<script language="javascript"> 
function getCountry(code) 
{ 
var code=document.getElementById('code').value; 
var object=new cfcProxy(); 
object.setCallbackHandler(getCountryResult); 
object.setErrorHandler(errorhandler); 
object.getCountrylist(code); 
} 
function getCountryResult(result) 
{ 
alert(result.value); 
document.getElementById('country').innerHTML=result; 
} 
function errorhandler() 
{ 
alert("Problems running proxy"); 
} 

Country code: <select name="code" id="code" onchange="getCountry();"> 
<cfoutput> 
<cfloop query="getCountrylistfrmDB"> 
<option value="#code#">#code#</option> 
</cfloop> 
</option> 
</cfoutput> 
</select><br><br> 

<div id="country"></div> 

cfcProxy.cfc is 

<cffunction name="getCountrylist" access="remote" returntype="query"> 
<cfargument name="code" required="yes"> 
<cfquery name="getCountrylistfrdisp" datasource="test"> 
select country from countrycode where code = "#arguments.code#"-> 
</cfquery> 
<cfreturn getCountrylistfrdisp> 
</cffunction> 

Répondre

2

Vous renvoyez une requête de votre cfc mais référençant result.value. Utilisez console.log (résultat) pour voir exactement quelles propriétés sont disponibles pour vous permettre de faire référence - je suis certain que "value" n'en fait pas partie. En outre, je suis sûr que l'assignation de l'innerHTML à l'objet résultat ne fonctionnera pas - cela devra aussi être la bonne propriété.

Questions connexes