2012-01-28 2 views
1

이 오류로 인해 몇 페이지가 중단되었습니다. 왜 내 cfc 메서드가 출력 스트림에 아무 것도 반환하지 않는지 잘 모르겠습니다. 오류 메시지를 리턴하는 것은 성공 함수입니다. 데이터베이스가 올바르게 업데이트되고 있습니다.

function onSelectChange(){ 
     var selected = $("#MrMrsSelect option:selected"); 
     if(selected.val() != 0){ 
      //alert("You Selected " + selected.text() + "for " + SelectedInvid); 
      $.ajax({ 
       type: "POST", 
       url: "cfc/basic.cfc?method=FixMrMrs", 
       data: "indivNum=" + SelectedInvid + "&MrMrs=" + selected.text(), 
       error: function (xhr, textStatus, errorThrown){ 
        // show error 
        alert(errorThrown); 
        }, 
       success: function(data) { 
      alert(data); 
    }, 

CFC :

 <cffunction name="FixMrMrs" output="false" access="remote"> 
     <cfargument name="IndivNum" required="True" type="string" default=""> 
     <cfargument name="MrMrs" required="True" type="string" default=""> 
     <cfset var qResults = ""> 
     <cfquery name="qResults" datasource="#request.dsn#"> 
      UPDATE users_info 
      SET Mr_Mrs_Ms_Miss = '#arguments.MrMrs#' 
      WHERE ID = <cfqueryparam value="#arguments.IndivNum#" /> 
     </cfquery> 
     <cfreturn true> 
     </cffunction>  

답변

0

몇 가지 ... 당신의 Ajax 호출, 시도 지정에서

, 또한 &returnFormat=json

, ...

이 추가
<cfset var qResults = ""> 
<cfcontent type="application/json" /> 

받는 사람 ur CFC가 반환되면 응답 헤더가 Json을 반환합니다.

+0

구문 오류 : Jason parse : 예기치 않은 문자입니다. // 빈 임시 속는 파일 에 대한 \t \t \t \t \t (var에 나는 = 0; 나는 user990016

+0

\t는 정말 다시 cffunction의 아무것도 기대하고 있지 않다 기능 – user990016

+0

에서 alrteady했다. – user990016

1

아무 것도 반환하지 않을 것으로 예상되므로 아무 것도 반환하지 마십시오.

base.cfc :

<cffunction name="FixMrMrs" returntype="void" output="false" access="remote" returnformat="plain"> 
    <cfargument name="IndivNum" required="True" type="string" default=""> 
    <cfargument name="MrMrs" required="True" type="string" default=""> 
    <cfset var qResults = ""> 
    <cfquery name="qResults" datasource="#request.dsn#"> 
     UPDATE users_info 
     SET Mr_Mrs_Ms_Miss = '#arguments.MrMrs#' 
     WHERE ID = <cfqueryparam value="#arguments.IndivNum#" /> 
    </cfquery> 
    <cfreturn /> 
</cffunction> 

자바 스크립트 :

function onSelectChange(){ 
    var selected = $("#MrMrsSelect option:selected"); 
    if(selected.val() != 0){ 
     //alert("You Selected " + selected.text() + "for " + SelectedInvid); 
     $.ajax({ 
      type: "POST", 
      url: "cfc/basic.cfc?method=FixMrMrs", 
      data: "indivNum=" + SelectedInvid + "&MrMrs=" + selected.text(), 
      error: function (xhr, textStatus, errorThrown){ 
       // show error 
       alert(errorThrown); 
      }, 
      success: function(data) { 
       alert(data); 
      } 
     }); 
    } 
} 

(여기에 대부분의 CF9을 모방) 라일로를 사용하여 내 테스트를 기반으로, 당신은 빈 경고를 받아야합니다.

+0

예, 데이터 유형을 html로 설정하고 리턴 유형이 큰 차이를 만듭니다. 감사. – user990016

+0

@ user990016 그렇다면 왜 대답을 받아들이지 않습니까? – gdoron