0

私はこの小さなテストページをいじってPHPコードを理解しようとしています.フォームに入力して送信すると、何かが起こるはずです。入力内容によります。

<!DOCTYPE html>
<html>
<head>
    <title>PHP Testing Page</title>
</head>
<body>
    <?php
        echo "Testing Page, working great!\n";
        $theDate = date("M-d-Y ");
        echo "Today is " . $theDate;
        $email1 = $_POST['email1'];
        $email2 = $_POST['email2'];
        function checkEmail()
        {
            $email1 = $_POST['email1'];
            $email2 = $_POST['email2'];
            echo $email1;
            echo $email2;
                if($email1==$email2)
                {
                    echo "\nE-Mail Addresses match.";
                }
                else
                {
                    echo "\nCheck to make sure your E-Mails match";
                }
            }
        ?>
        <form name="checkingEmail" action="." method="post">
            E-Mail: <input type="text" name="email1" value="E-Mail Here" />
            <br />
            Retype E-Mail: <input type="text" name="email2" value="Confirm E-Mail" />
            <br />
            <input type="button" value="Submit" onClick="checkEmail()">
        </form>
    </body>
</html>

フォームが(訪問ページを介して)入力され、送信ボタンがクリックされた後、何も起こりません。誰か説明してくれませんか?

** * ** * **編集* ** * **修正済み** 回避策が見つかりました! 機能はありませんが、魅力のように機能します。

<!DOCTYPE html>
<html>
<head>
    <title>PHP Testing Page</title>
</head>
<body>
    <?php
        echo "Testing Page, working great!\n";
        $theDate = date("M-d-Y ");
        echo "Today is " . $theDate;
    ?>
    <form name="checkingEmail" action="test.php" method="post">
        E-Mail: <input type="text" name="email1" value="E-Mail Here" />
        <br />
        Retype E-Mail: <input type="text" name="email2" value="Confirm E-Mail" />
        <br />
        <input type="submit" value="Submit">
    </form>
    <?php 
    $email1 = $_POST["email1"];
    $email2 = $_POST["email2"];
    if($email2==null)
    {
/*I believe this just stops it from checking the rest of the conditions, that
        way it won't echo anything until someones enters valid (non-null) input*/
        $email2 = "notnull";
    }
    else if($email1==$email2)
    {
        echo "Good Job.";
    }
    else
    {
        echo "Failure to comply.";
    }
    ?>
</body>

関数の外にチェックがあるので、それを呼び出す必要はありません。また、最初の if ステートメントで、$email2 が null の場合 (最初にロードしたとき)、単に $email2 を「notnull」に変更し、有効なステートメントが見つかったため、ステートメントのチェックを停止します。(100%ではありません)

4

2 に答える 2

4

送信ボタンはどこにありますか?

<input type="button" value="Submit" onClick="checkEmail()">
               ^

タイプはsubmit

この回答のコメントで述べたように、javascript から php 関数を呼び出すことはできません。

checkEmailそれを行うと、定義されていないjavascriptから呼び出します。
そのため、次のエラーが表示されます。

Uncaught ReferenceError: checkEmail is not defined
于 2013-01-17T02:12:02.157 に答える
0

タイプは送信する必要があります。

submit に変更してから実行すれば問題ないはずです。Form 要素では送信タイプを使用する必要があります。

于 2013-01-17T02:13:14.917 に答える