1

phpページに、それぞれ事前設定された値を持つ多くのテキスト入力を含むフォームがあります。誰かがPOSTでページを送信するときに、どれが変更されたかを知りたいので、誰かがテキスト入力を入力したときにテキストのプロパティ(背景色など)を設定できると思いました。

送信後、入力のプロパティを取得して、変更されているかどうかを確認するにはどうすればよいですか?$ _POST ['name_of_text_input']は入力の値のみを返しますか?

4

5 に答える 5

2

それほど単純に変更されているかどうかはわかりません。

PHPはサーバー上で実行され、データがユーザーに送信されると、PHPに関する限り、これで終わりです。session(データベース内のまたはいくつかのデータを介して)特に覚えておくように指示しない限り、他には何も覚えていません。

次のいずれかを実行する必要があります。

  • 'changed'または比較対象のようなものを示すjavascriptによって変更された2番目の隠れた変数があります。
  • PHPコードに初期値をロードし、それらと比較して、変更されているかどうかを確認します
  • 値が事前設定されている場合は、PHPコードで手動で事前設定値に対して転記された値を確認できます。
于 2012-08-01T11:46:32.040 に答える
1

テキスト入力ごとに非表示フィールドを追加し、javascript(入力のイベントの変更)を使用してそれらの非表示フィールドに値を設定できます。

html5を使用すると、プレースホルダーを使用できる場合があります

<input type="text" placeholder="default value">

PHPでは、値が入力されていないかどうかを確認してから、デフォルト値を使用する必要があります。

于 2012-08-01T11:46:33.707 に答える
1

簡単な解決策は、エントリの非表示フィールドを作成し、後でそれらを比較することです。

<form>
    <!-- old values -->
    <input type="hidden" name="old_name" value="<?=$name;?>" />
    <input type="hidden" name="old_surname" value="<?=$surname;?>" />
    <!-- current values -->
    <input type="text" name="name" value="<?=$name;?>" />
    <input type="text" name="surname" value="<?=$surname;?>" />
</form>

これで、送信後、それらが異なるかどうかを比較old_nameして確認できます。name

于 2012-08-01T11:52:28.953 に答える
0

$_POSTを使用して入力のプロパティを取得する方法はありません。ただし、JavaScriptコードを使用して、初期入力の状態を記憶し、変更されたフィールドのみを送信することができます。

于 2012-08-01T11:47:37.410 に答える
0

FORMHTMLである場合はいつでも、サーバー側の配列にすべての変数を。POST (HTML)で送信します。だから、あなたはそれらにアクセスすることができます.phpPOSTname$_POST['name_of_the_input']

例えば:

    <html>
    <body>

    <form action="welcome.php" method="post">
       Name: <input type="text" name="fname" />
       Age: <input type="text" name="age" />
       <input type="submit" />
    </form>

    </body>

</html>

次のようにアクセスできますPHP

<?php 

echo $_POST["fname"];
echo $_POST["age"]; 

?>
于 2012-08-01T11:52:30.620 に答える