2010-01-31 2 views
0

EDIT :JQuery/CodeIgniter로 AJAX 호출 후 반환 된 데이터 평가

내 평가가 작동하지 않는 문제가 발견되었습니다. 내 codeIgniter 함수에서 반환되는 모든 텍스트 앞에 공백이 있으므로 "성공"을 보았을 때 실제로 "성공"했습니다. 왜 그런지 모르지만 그걸로 확실히 작업 할 수 있습니다.

다음 단계 - 새로운보기 열기 - Donny의 답변이 완벽했습니다.


내 AJAX 라이브러리의 JQuery를 사용하는 응용 프로그램에 CodeIgniter를 사용하고 있습니다. 난 그냥 AJAX 물건을 배우고있어, 그래서 아마 여기에 뭔가를 놓친거야 ...

다음 코드는 로그인 양식입니다.

목표는 양식 제출에서 ajax 호출을 사용하므로 오류를 확인하고 웹 페이지 새로 고침없이 화면에 오류 메시지를 제공 할 수 있습니다. CodeIgniter form_validation 클래스를 사용하여 모든 유효성 검사를 수행하고 있습니다.

내 codeigniter 함수는 적절한 오류 메시지 또는 "success"라는 텍스트 값을 반환합니다. 텍스트 값을 평가하고 "성공"이라고하면 다른 Ajax 함수를 호출하여 로그인 한 사용자의 홈 페이지를로드하는 데 필요한 CodeIgniter 함수를로드합니다.

"data == 'success'"문에 도달 할 때까지는 모든 것이 아래 코드에서 작동합니다.

왜 화면에 메시지가 "성공"으로 표시되기 때문에 사실인지 알 때 false가 반환됩니다.

$(document).ready(function() { 
    $('#registration_form').submit(function(e) { 
     e.preventDefault(); 
     $.post("login", { 
      email : $('#email').val(), 
      password : $('#password').val() 
     }, function(data) { 
      $('#message').text(data); 

      if (data == "success") { 
       alert(data); 
       post("landingpage"); 
      } 
     }); 
    }); 
}); 
+1

데이터 변수가 'success'값을 보유하고 있음을 클라이언트에서 확인 했습니까? 'alert ('-'+ data + '-');'를 실행하여 경고가 나오는지 확인하십시오. 그러나 확인 전에 확인하십시오. –

+0

줄 $ ('# 메시지'). 텍스트 (데이터); 내 웹 페이지의 값을 데이터에 포함 된 것으로 변경합니다. 값 "success"를 표시합니다. 그러나 경고는 표시되지 않습니다. 조언을 주신 덕분에 – user158017

답변

1

당신은 형태가 AJAX를 사용하여 제출 할 jQuery form plugins을 사용하는 것이 좋습니다.

는 리디렉션을이 코드를 사용하려면

window.top.location.assign(URL); 

URL 페이지 대상입니다. 당신이 CI를 사용하는 경우, 당신이보기에이를 넣을 수 있습니다 :

window.top.location.assign("<?php echo site_url(THE_PAGE_URL); "); 

또한, 당신은 방화범 순 탭에서 data 값을 검사 할 수 있습니다, 또는 웹 관리자 자원 탭 (사파리와 구글 크롬).

+0

. 빠른 질문 - 양식 플러그인의 특별한 이점은 무엇입니까? 나는 그들을 볼 것이다. – user158017

관련 문제