0

我是一个非常环保的程序员,在网络上的任何地方都找不到我的问题的答案。感谢您向我发送的任何帮助!我正在尝试为允许上传并允许用户注销的用户创建一个基本的登录页面。在登录期间,我开始一个会话。有用。对于上传和注销,我使用 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

我相信虽然我不确定登录后按钮消失的原因是因为您使用ajaxSubmit的选项target设置为#userLogout指向表单的父 div。

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/ 目标 标识页面中要使用服务器响应更新的元素。该值可以指定为 jQuery 选择字符串、jQuery 对象或 DOM 元素。默认值:空

于 2013-02-10T19:58:23.167 回答