0

テキストボックスの値が空のphpを実行していると、アラートボックスが開きます(ここではjavascriptを使用しています)

これは私のコードです

    <?php 
    include('config.php');

        if(isset($_POST['submit'])){
        $username=$_POST['username'];

    ?>

    <script>
        function validate(){
        if(document.forms[0].username.value==""){
          window.alert("You must enter both values");
          return false;
        }
        }
    </script>

    <?php
    }
    ?>



<html>
<div><p>Member Profile</p>
    <form action="testing.php" method="POST" onsubmit="return validate();">
    Username<br>
    <input class="user" type="text" name="username" id="username" /><br>


<input type="submit" name="submit" value="register" />
</form>
</div>

</html>

問題は、アラートが表示される前に2回クリックする必要があることです

この問題を解決するのを手伝ってください

4

1 に答える 1

3

これは、スクリプトが phpif(isset){}ブロック内にあるためです。1 回のクリックでフォームが送信され、スクリプトが生成され、2 回目には機能します。代わりに、次の設定を試してください。

<?php
    include ('config.php');

    if (isset($_POST['submit']))
    {
        $username = $_POST['username'];
    }
?>
<html>
    <head>
        <script>
            function validate () {
                if (document.forms[0].username.value == "") {
                    window.alert("You must enter both values");
                    return false;
                }
            }
        </script>
    </head>
    <body>
        <div>
            <p>
                Member Profile
            </p>
            <form action="testing.php" method="POST" onsubmit="return validate();">
                Username
                <br>
                <input class="user" type="text" name="username" id="username" />
                <br>

                <input type="submit" name="submit" value="register" />
            </form>
        </div>
    </body>
</html>

編集:

script タグを head タグ内に移動しました。スクリプトを外部に置くことに何らかの影響があるかどうかはわかりませんが、移動したことを確認するためです.

2回目の編集:(OCDが始まっています)

このコードをコピーして貼り付けたかどうかはわかりませんが、私には奇妙に見えました:)

于 2012-11-30T09:43:16.500 に答える