0

私は非常に環境に配慮したプログラマーであり、私の問題に対する答えが Web のどこにも見つかりません。助けてくれてありがとう!アップロードを許可し、ユーザーがログアウトできる基本的なログインページを作成しようとしています。ログイン中に、セッションを開始します。できます。アップロードとログアウトの両方で、jquery.form.js ライブラリを使用してフォーム機能を利用しています。私のコードのアップロード部分では、すべて正常に動作します。ユーザーは任意のタイプの画像をアップロードできます。アップロード中はボタンが非アクティブになり、新しいアップロードが成功すると再びアクティブになります。ただし、ログアウト部分については、ログアウト ボタンをクリックしてセッションを破棄すると、ログアウト ボタンが消えるだけです。セッションの破棄が関係しているのではないかと思ったのですが、それがなくても私のphpではボタンが消えてしまいました。以下のコードのログアウト部分を、html、js、php の順にコピーしました。何か案は?ありがとう!

<html>
    <head>
        <title>Sample</title>
        <meta http-equiv= "Content-Type" content="text/html; charset=UTF-8">
            <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
            <script type = "text/javascript" src = "js/jquery.form.js"></script>    
            <script type = "text/javascript" src = "js/xmlRequest.js"></script>
            <script>xmlRequest = new xmlRequest();</script>
            <script type = "text/javascript" src = "js/fileUpload.js"></script>
            <script>fileUpload = new fileUpload();</script>
    </head>
    <body>
        <div id = 'userLogout'>
            <form action="php/logout.php" id = "logoutSection" enctype = "multipart/form-data" method = "post" >
                <button type="submit" id="logoutButton">Close!</button>
            </form>
        </div>

        <div id = 'logOutOutput'>
        </div>
    </body>
</html>



function fileUpload()
{   
$(document).ready(function()
    {   
        $('#logoutSection').on('submit',function(a){

                //prevent default action of going to new page.
                a.preventDefault();
                $('#logoutButton').attr('disabled','');
                $(this).ajaxSubmit({
                    target: '#userLogout',
                    success: afterLogout//output a thank you message
                });
                $('#loginForm').show();
                $('#logOutOutput').append("<br>Thanks for checking us out!<br>");
            });
    });

    function afterLogout()
    {
        $('#logoutSection').resetForm();
        $('#logoutButton').removeAttr('disabled');
    }
}


<?php
    echo "<br>Goner<br>";
    session_start();//always required for sessions
    session_destroy();//logs out
?>
4

1 に答える 1

0

ログイン後にボタンが消えた理由は、フォームの親divを指すajaxSubmitオプションtargetセットを使用しているためだと思います。#userLogout

ajaxSubmit が成功すると、コンテンツが<div id='userLogout'> ... </div>ajax 操作の結果に置き換えられます。

私はこのようにします: <div id='output'></div> <div id = 'userLogout'> <form action="php/logout.php" id = "logoutSection" enctype = "multipart/form-data" method = "post" > <button type="submit" id="logoutButton">Close!</button> </form> </div>

そして ajaxSubmit ターゲットをに変更しますtarget: 'output'

この http://www.justwebdevelopment.com/blog/ajaxform-and-ajaxsubmit-options/ target サーバーの応答で更新するページ内の要素を識別します。この値は、j​​Query 選択文字列、jQuery オブジェクト、または DOM 要素として指定できます。デフォルト値: null

于 2013-02-10T19:58:23.167 に答える