2011-09-16 4 views
0

페이지를 새로 고치지 않고 로그인 할 수있는 양식의 로그를 만들고 있습니다. 로그인 DIV 표시 할 다시로드,두 번 클릭하는 자바 스크립트/AJAX

INDEX.php 

    <script language="javascript"> 
    $(document).ready(function() 
    { 

//log in- send data to php page which creates a session. Log in div is reloaded to display log out button. 
     $("#login_form").submit(function() 
     { 
      $.post("php/loginajax.php",{emai:$('#emai').val(),pass:$('#pass').val()} ,function(data) 
      {   
      if(data=='yes') {$('#login').load('inc/headerlogin.php');} 
      if(data =='no') {$("#loginerror").show();}     
      }); 
      //return false; 
     }); 

//log out- destroy session and reload log in div to display log in form again. 
     $("#logout").click(function() 
     { 
      $.post("php/loginout.php"); 
      $('#login').load('inc/headerlogin.php'); 
     }); 

    }); 
    </script> 

로그 아웃 버튼을 한 번 클릭를 미세 작동 파괴 세션 :

나는 다음과 같은 페이지가 있습니다.

로그인 버튼이 첫 페이지에로드되어 있으면 작동합니다. 로그인 한 다음 로그 아웃 한 다음 다시 로그인 해보십시오. 동일한 페이지에서 새로 고치지 않고 모두 로그인 버튼을 두 번 클릭해야합니다.

또한 if 문과 내부에 몇 가지 경고가 표시되어 있지만 나머지 코드가 작동하지 않는 경우에도 표시되지 않습니다 ... 아이디어가 있습니까?

+0

첫 번째 클릭시 POST가 성공하지 못해서 성공 함수가 호출되지 않습니다. 나는. 서버에 문제가 있습니다. –

+0

그런 식으로는 생각하지 못했지만 새 페이지에서 클릭하면 처음으로 작동합니다. 로그 아웃 한 후 동일한 페이지에서 새로 고치지 않고 두 번 클릭해야 로그인 할 수 있습니다. – penpen

+0

'inc/headerlogin.php' 란 무엇이며 왜 로그 아웃 후에 다시'load()'해야합니까? 이 파일에 JS가 포함되어 있으면'$ (document) .ready()'가 다시 실행되어 두 번째'submit' 핸들러를 등록합니다. –

답변

0

다시 내 질문에 찾고, 내가 만들어 왔습니다 해봐야 할 것 같습니다 실제 서식 :

$("#login_form").live("submit", function(event) { });" 
1

로그 아웃 버튼을 다시로드하면, 내가 유 라이브 대신 클릭으로 사용해야합니다 생각

$("#logout").live('click',function() 
    { 
     $.post("php/loginout.php"); 
     $('#login').load('inc/headerlogin.php'); 
    }); 

나는 ..이 당신을 도와 바랍니다

+0

고맙지 만 로그 아웃 버튼은 괜찮습니다. 이미 로그 아웃 한 상태에서 새로 고치지 않은 페이지의 로그 형태입니다. – penpen

+0

내 오래된 질문을 다시 방문하고 부분적으로 옳았습니다! "$ ("# login_form ")을 사용 했어야합니다. live ("submit ", function (event) {});" – penpen

관련 문제