2011-09-16 13 views
0

私はページを更新せずにログインするフォームを作成しています。ログインのdivを表示するには、再読み込み、2回クリックするとJavascript/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> 

ログアウトボタンを一度クリックし微作品、破壊されたセッション:

は、私は以下のページを持っています。

ログインボタンは、最初のページの読み込み時に機能します。 ログインした後、ログアウトしてからもう一度ログインしてください。同じページのすべてのページを更新せずに、ログインボタンを2回クリックしてください。

また、if文の前とその内側の両方にいくつかのアラートが散在していますが、コードの残りの部分が表示されていなくても...任意のアイデアですか?

+0

あなたの最初のクリックでは、最初のクリックでPOSTが成功しないため、成功関数は呼び出されません。私。あなたのサーバーに問題があります。 –

+0

私はそんなことは考えていませんでしたが、新しいページでクリックすると初めて動作します。ログアウトした後、同じページにログインして、すこし爽やかに2回クリックする必要があります。 – penpen

+0

'inc/headerlogin.php'とは何ですか?なぜログアウト後にもう一度' load() 'する必要がありますか?そのファイルにJSが含まれている場合、 '$(document).ready()'が再び実行され、2番目の 'submit'ハンドラが登録されます。 –

答えて

0

は戻って私の質問に見て、私が作ってきたはずですようです実際のフォームライブ:

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

は、ログアウトボタンをリロードすれば、私はuがライブ代わりにクリックを使用しなければならないと思います

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

私は...これはあなたを助けたい

+0

ありがとうございます。ログアウトボタンは問題ありません。既にログアウトして更新していないページのログインフォームです。 – penpen

+0

私の古い質問に戻って、あなたは部分的に正しいです!私は "$("#login_form ")を使ったはずです。live(" submit "、function(event){});" – penpen

関連する問題