2013-01-10 6 views
0

서버 측에 로그인 한 후 아약스 제출 :새로 고침 페이지 -

<?php 
if (empty($_POST) === false){ 
    $username = $_POST['username']; 
    $password = $_POST['password']; 

    if (empty($username) === true || empty($password) === true){ 
     $errors[] = 'You need to enter a username or password'; 
    } 
    else if (user_exists($username)===false){ 
     $errors[] = 'We can\'t find that username in our database.'; 
    } 
    else if (user_active($username) === false){ 
     $errors[] = 'Activate your account.'; 
    } else { 
     $login = login($username,$password); 
     if ($login === false){ 
      $errors[] = 'Incorrect combination.'; 
     } else { 
      $_SESSION['user_id'] = $login; 
      $errors[] = 'success'; 
     } 
    } 
}else { 
    $errors[] = 'No data received!'; 
} 
output_errors($errors); 
?> 

아약스 :

$(document).ready(function(){ 

    $("#login").click(function(){ 
    $.post($('#loginform').attr("action"), $('#loginform').serializeArray(), function(data) { 
       if(data == 'success'){ 
        $(document).ajaxStop(function() { location.reload(true); }); 
       }else { 
        $('#loginmsg').html(data); 
       } 
     }); 
    }); 
}); 

문제는 내가 if 문에 넣어 경우는 '데이터를'식별되지 않고있다 . 로그인하는 데 문제는 없지만 페이지가 새로 고쳐지지 않습니다. 도와주세요. 감사.

업데이트 : AjaxStop없이 위치 재로드를 시도했지만 작동하지 않았습니다. 내가 원하는 건 그것이 '성공'ajaxStop없이

+1

console.log (데이터)를 할 때 무엇을 보았습니까? youf 전에 조건이 ... –

+0

입력 상자에 와트 메신저 입력을 기반으로 PHP에서 에코 메시지를 얻을 – Yoosuf

답변

0

시도가있는 경우에만 페이지를 새로 고침하는 것입니다 예컨대 :

if(data == 'success') location.reload(true); 

당신이 페이지를 다시로드하는 경우 - 왜 완료 될 때까지 요청을 기다릴를?

또한 PHP에서 다른 보이지 않는 문자를 보내지 않았는지 확인하십시오. 종료 태그 ?>을 제거하는 것이 좋습니다.

+0

나는 그것을 시도, 그 여전히 작동하지 않았다. – Yoosuf

+0

'if' 문 앞에'console.log (data)'를 넣고'data' 값이 무엇인지 볼 수 있습니까? – tborychowski

+0

입력 상자에 입력 한 와트를 기반으로 PHP에서 에코 메시지가 나타납니다 – Yoosuf