0

入力を入力した後、テキストボックスが再び表示され、修正方法がわかりません。出力のスクリーンショットは次のとおりです。

ここに画像の説明を入力

オンブラーの後、再びショーです

これが私のコードですが、これを修正する方法がわかりません。私の機能はうまくいきますが

<!DOCTYPE HTML>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Amateur</title>
        <link rel="stylesheet" href="css/reset.css" type="text/css">
        <script src="http://code.jquery.com/jquery-1.8.0.js"></script>
        <script>
            function check_email() {
                var email=$("#txtEmail").val();
                $.ajax(
                {
                    type:"POST",
                    url:"index.php",
                    data: "email="+email,
                    success:function(msg) {
                        $("#chkEmail").html(msg);
                    }
                });
                return false;
            }
        </script>
    </head>

    <body>
    <form method="post">
        <label for="txtEmail">E-mail:</label>
            <input id="txtEmail" name="email" type="email" onblur="return check_email()">
        <label id="chkEmail" for="txtEmail"></label>
        <?php
        if(isset($_POST['email']))
        {
            $user='root';

            $pdo=new PDO('mysql:host=localhost;dbname=class;charset=utf8',$user);

            $email=$_POST['email'];

            $stmt=$pdo->prepare('SELECT user_email from tbl_users WHERE user_email=:email LIMIT 1');
            $stmt->execute(array(':email'=>$email));

            if($stmt->rowCount()>0) {
                echo 'E-mail already use.';
            }
            else {
                echo 'E-mail not use.';
            }   
        }
        ?>
    </form>
    </body>
    </html>
4

2 に答える 2

1

このようにコードを変更します。問題は、現在の同じページにデータをPOSTし、AJAXリクエストの応答としてコード全体を取得することです。したがって、POSTで実行を終了すると、関連するメッセージのみが表示されます。

 <?php
        if(isset($_POST['email']))
        {
            $user='root';

            $pdo=new PDO('mysql:host=localhost;dbname=class;charset=utf8',$user);

            $email=$_POST['email'];

            $stmt=$pdo->prepare('SELECT user_email from tbl_users WHERE user_email=:email LIMIT 1');
            $stmt->execute(array(':email'=>$email));

            if($stmt->rowCount()>0) {
                echo 'E-mail already use.';
            }
            else {
                echo 'E-mail not use.';
            } 
            exit;  
        }
        ?><!DOCTYPE HTML>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Amateur</title>
        <link rel="stylesheet" href="css/reset.css" type="text/css">
        <script src="http://code.jquery.com/jquery-1.8.0.js"></script>
        <script>
            function check_email() {
                var email=$("#txtEmail").val();
                $.ajax(
                {
                    type:"POST",
                    url:"index.php",
                   data: { 
            'email': email
                },
                    success:function(msg) {
                        $("#chkEmail").html(msg);
                    }
                });
                return false;
            }
        </script>
    </head>

    <body>
    <form method="post">
        <label for="txtEmail">E-mail:</label>
            <input id="txtEmail" name="email" type="email" onblur="return check_email()">
        <label id="chkEmail" for="txtEmail"></label>

    </form>
    </body>
    </html>
于 2012-08-30T04:16:16.057 に答える
-1

追加check_emailする前に機能しているreturn false

$("#txtEmail").hide();

これはあなたが意味したことですか?

于 2012-08-30T04:15:20.047 に答える