我可以通过phpPOST获取对象的属性吗


Can I get a property of an object through php POST?

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

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

你看不出它们是否已经被这么简单地更改了。

PHP在服务器上运行,一旦数据发送给用户,就PHP而言,它就结束了。除非你特别告诉它要记住(通过session或数据库中的一些数据),否则它不会记住其他任何东西。

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

  • 让第二个隐藏变量由javascript更改,显示"changed"或类似的内容
  • 在PHP代码中加载初始值,并与它们进行比较,看看它们是否发生了更改
  • 如果这些值是预设的,您可以在PHP代码中手动对照预设值检查发布的值

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

如果你使用html5,你可能可以使用占位符

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

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

一个简单的解决方案是为条目创建隐藏字段,然后进行比较:

<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,看看它们是否不同。

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

任何时候,只要您在HTML中有一个FORMPOST (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"]; 
?>