0

私はいくつかのコードを持っています: index.html-file に div があります

<div id="logindiv">
    <?php require_once('login.php'); ?>
</div>

それはjqueryで使用されます

<script type="text/javascript">
  $(document).ready(function() {
    $.post('login.php', $('#login').serialize(), function (
      data, textStatus) {
        $('#login').html(data);
    });
    return false;
});
</script>

ログインフォームをdivに入れたいので、ページを更新せずにログインがdiv内で機能します。また、他のファイル (you-are-logged-In.php など) へのリダイレクトは、div id=login に自動的に表示されます。

そしてlogin.phpは

<?PHP
    require_once("./include/membersite_config.php");
    if(isset($_POST['submitted'])) {
        if($fgmembersite->Login()) {
            $fgmembersite->RedirectToURL("login-home.php");
        }
    }
?>
<div id='fg_membersite'>
    <form id='login' accept-charset='UTF-8'>
        <fieldset>
            <legend>Login</legend>
            <input type='hidden' name='submitted' id='submitted' value='1'/>
            <div class='short_explanation'>* required fields</div>
            <div>
                <span class='error'>
                    <?php echo $fgmembersite->GetErrorMessage(); ?>
                </span>
            </div>
            <div class='container'>
                <label for='username' >UserName*:</label><br/>
                <input type='text' name='username' id='username' value='<?php echo $fgmembersite->SafeDisplay('username') ?>' maxlength="50" /><br/>
                <span id='login_username_errorloc' class='error'></span>
            </div>
            <div class='container'>
                <label for='password' >Password*:</label><br/>
                <input type='password' name='password' id='password' maxlength="50" /><br/>
                <span id='login_password_errorloc' class='error'></span>
            </div>
            <div class='container'>
                <input type='submit' name='Submit' value='Submit' onClick='loadLoginDiv();' />
            </div>
            <div class='short_explanation'>
                <a href='reset-pwd-req.php'>Forgot Password?</a>
            </div>
        </fieldset>
    </form>
    <!-- client-side Form Validations:
    Uses the excellent form validation 
    script from JavaScript-coder.com-->
    <script type='text/javascript'>
    // <![CDATA[
        var frmvalidator  = new Validator("login");
        frmvalidator.EnableOnPageErrorDisplay();
        frmvalidator.EnableMsgsTogether();
        frmvalidator.addValidation("username","req","Please provide your username");
        frmvalidator.addValidation("password","req","Please provide the password");
    // ]]>
    </script>
</div>

ページを更新せずにフォームを使用するには? 更新せずに何度も送信するのではなく、一度送信します。

4

1 に答える 1

0

ページの読み込み時に Ajax リクエストを実行していますが、正しくありません。通常のサブミットを Ajax リクエストに置き換える必要があります。

<script type="text/javascript">
  $(document).ready(function() {
    $('#login').live('submit', function() {
        $.post('login.php', $(this).serialize(), function (
          data, textStatus) {
            $('#login_wrapper').html(data);
        });
        return false;
    });
   });
</script>
于 2012-05-22T11:04:30.677 に答える