1

我在一个 php 页面中有一个表单,里面有很多文本输入,每个都有一个预设值。当有人通过 POST 提交页面时,我想知道其中哪些已更改,所以我想我可以在有人输入文本输入时设置文本的属性(如背景颜色)。

提交后,如何获取输入的属性以查看它们是否已更改?$_POST['name_of_text_input'] 只返回输入的值?

4

5 回答 5

2

您看不到它们是否已像那样简单地更改。

PHP 在服务器上运行,一旦数据发送给用户,就 PHP 而言,这就是它的结束。session除非您明确告诉它记住(通过数据库中的一个或一些数据),否则它不会记住任何其他内容。

您必须执行以下操作之一:

  • 有第二个隐藏变量由 javascript 更改,显示“已更改”或您比较的一些类似的东西。
  • 在 PHP 代码中加载初始值并与它们进行比较以查看它们是否已更改
  • 如果这些值是预设的,您可以在 PHP 代码中手动检查发布的值与预设值。
于 2012-08-01T11:46:32.040 回答
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_namename看看它们是否不同。

于 2012-08-01T11:52:28.953 回答
1

您可以为每个文本输入添加隐藏字段,并使用 javascript 在这些隐藏字段中设置一个值(输入的更改事件)。

如果您使用 html5,您也许可以使用占位符

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

在 PHP 中,您应该检查是否没有输入任何值,则应采用默认值。

于 2012-08-01T11:46:33.707 回答
0

任何时候你FORM在 HTML 中都有 a,aPOST (HTML)所做的就是将它发送到你的.php服务器端POST数组,所有变量都带有name. 因此,您可以访问它们$_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 回答
0

无法使用 $_POST 获取输入属性。但是您可以使用 javascript 代码来记住初始输入的状态并仅发送更改的字段。

于 2012-08-01T11:47:37.410 回答