ColdFusion 9 및 jQuery를 사용하고 있습니다. 나는 CFAJAXPROXY를 사용하고있다.jQuery에서 CFC 반환 변수에 액세스하는 방법?
jQuery 객체에 반환 된 데이터에 액세스하는 데 문제가 있습니다.
이 내 jQuery 코드의 일부입니다 연합사의
var jro = new jsApp();
NewUser = jro.addUser(NewEmail);
방법은 ADDUSER입니다. 이메일 주소 (NewEmail)를 전달하면 새 사용자의 UserID가 반환됩니다.
연합 사령부에서이 쿼리는 잘 작동합니다 : 나는 동적를 사용하려고하면
<cfset NewUser = 10>
<cfreturn NewUser>
:
<cfquery name="GetUserID">
SELECT MAX(UserID) as MaxID
FROM Users
</cfquery>
내가 하드 코딩이 같은 값이 나는 문제가 발생하지 않는 경우 이 변수는 JSON 오류가 발생합니다.
<cfset NewUser = GetUserID.MaxID>
<cfreturn NewUser>
이 오류는 CFC에서 발생하는 것으로 보입니다. 반환 변수를 하드 코딩하지만 쿼리에서 단일 정수를 반환하면 작동하지 않습니다.
쿼리에서 단일 정수를 반환하는 방법은 무엇입니까? 왜이 문제가 발생합니까?
다음은 CFC 호출 방식입니다.
$("#AddUserSave").click(function() {
NewEmail = $("#NewEmail").attr("value");
var jro = new jsApp();
UserID = jro.addUser(NewEmail);
$("#UserDiv").load("GlobalAdmin/EditUser.cfm?UserID="+UserID);
});
다시, CFC는 데이터베이스에서 사용자 ID를 반환을 거부하지만, 기꺼이 하드 코드 수를 반환합니다.
<cfset NewUser = GetUserID.UserID>
<cfset NewUser = 1>
<cfreturn NewUser>
을하지만이 작동하지 않습니다 :
는가 좋아, 내 CFC이 작동
<cfset NewUser = GetUserID.UserID>
<cfreturn NewUser>
파이어 버그는 말한다 :
이parseJSON throw new SyntaxError("parseJSON");
cfajax.js (line 803)
좋아, 내가 통해이 방법을 액세스 할 때 브라우저에서는 반환되는 정수를 보여줍니다.
<!--- GET MAX USER --->
<cffunction name="getMaxUser" access="remote" returnformat="plain" returntype="any">
<cfquery name="GetUserID">
SELECT MAX(UserID) AS MaxID
FROM Users
</cfquery>
<cfreturn createObject('java', 'java.lang.Integer').init(javaCast('int', GetUserID.MaxID)) />
</cffunction>
페이지 소스를 볼 때 maxid는 1 (1/정수)입니다.
연합사는 자바 스크립트에서 호출되는 :
이var jro = new jsApp();
jro.getMaxUser();
나는이 스크린 샷에서 볼 수 있습니다 무엇입니까 정확한 오류 : 여기
http://evikjames.com/IMAGEs/parsejson.png
그리고 내 프레온의 이미지입니다 .여기
http://evikjames.com/images/CFC.png
메서드에 액세스하는 자바 스크립트에 의해 생성 된 URL의 이미지입니다 :http://www.evikjames.com/images/error-2.png
을 ++++++++++++++++++ +++++++++++++++++++++++++++++++++++ 답변 자바 스크립트가 설정하는 요청을 만들 필요가
반환 형식은 평이합니다. 기본 반환 형식은 JSON이라고 생각합니다. 자신을 소유 한 JSON의 CFC 초크가 만들어졌습니다.
var jro = new jsApp();
jro.setReturnFormat('plain');
UserID = jro.getMaxUser();
모자를 찰리에게 전달해줍니다. 나는 영원히 감사한다.
Firebug 또는 비슷한 것을 사용하여 반환되는 값이 숫자인지 확인할 수 있습니까? 빠른 테스트를 실행했는데 제대로 작동하는 것 같습니다.하지만 배열 표기법을 사용하여 쿼리 값을 참조해야하는 상황이있었습니다. " 'for 예. –
charliegriefer
반환되는 값이 없습니다. 는 CFC에서 JSON 오류를 발생시킵니다. 귀하의 생각은 배열/구조/쿼리 대신 단일 값을 반환 할 수있는 것처럼 보이지만 작동하지 않습니다. –