1

JavaScript でフォームの検証を練習していますが、送信先のページからデータを取得しようとすると取得できません。

form.html

<body>
    Hello.<br />
    <form onsubmit="return validate()" action="process.php" method="POST">
    Enter name: <input type="text" id="name" /><br />
    Enter phone number: <input type="text" id="number" /><br />
    Enter password: <input type="password" id="paswd" /><br />
    Is there anything else you would like to add: <input type="text" id="anything" /><br />
    <input type="submit" value="Check Form" />
    </form>
</body>

プロセス.php

<?php
echo 'Here: '.$_POST['number']
?>

どのインデックスを使用しても、「未定義のインデックス: 2 行目」が表示されます。私は何を間違っていますか?

編集:だから私はid必要な属性を使用できませんnameか? nameすべての s の値は対応する s と同じになるため、コーディングの冗長性を防ぐ方法はありますidか?

4

5 に答える 5

6

nameフィールドに属性が必要です

<input type="text" id="number" name="number" />

$_POSTフィールド内の属性を検索してname、フィールド値をキャプチャします。id

于 2012-07-25T23:17:22.067 に答える
4

入力には要素の名前が必要です。

そのような:

<input type="text" id="number" name="number" />

PHPは、IDではなく、これらの名前を検索するフォームデータを取得します。

于 2012-07-25T23:25:59.957 に答える
2

Vitor Bragaが言ったように、入力には要素の名前が必要ですが、これが必要なのは、PHPを使用して送信でフォームの値を処理している場合、JavaScriptを使用して検証していると述べたように取得できる場合のみです。次のような値:

document.getElementById("数値").値

于 2012-07-27T01:20:35.467 に答える
2

入力を忘れましたname

<input type="text" id="number" name="number" />
于 2012-07-25T23:17:46.610 に答える
2

フォーム要素に名前を付ける必要があります。

<input type="password" id="paswd" name="paswd" />

興味深いことに、名前と ID は同じ名前空間を共有しています。ID が本当に必要ない場合は、そのままにしておいてください。elements検証関数内では、フォームのオブジェクトを使用して常にすべての要素にアクセスできます。

// called onsubmit
var validate = function(e) {
    if (this.elements["paswd"].value.length < 4) {
        alert("password needs to have at least 4 characters");
        return false;
    }
    return true
};

通常、入力タイプを ID に追加して、フィールド名と区別します

<label for="paswd-txt">Password: </label>
<input type="text" name="paswd" id="paswd-txt" />

<label for="save-cb">Remember me: </label>
<input type="checkbox" name="save" id="save-cb" value="1"/>
于 2012-07-25T23:18:10.317 に答える