【问题标题】:Can I get a property of an object through php POST?我可以通过 php POST 获取对象的属性吗?
【发布时间】:2012-08-01 11:42:46
【问题描述】:

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

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

【问题讨论】:

    标签: php post properties


    【解决方案1】:

    你看不到它们是否被这么简单地改变了。

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

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

    • 有第二个隐藏变量由 javascript 更改,显示“已更改”或您比较的某些类似内容。
    • 在您的 PHP 代码中加载初始值并与它们进行比较以查看它们是否已更改
    • 如果这些值是预设的,您可以在 PHP 代码中根据预设值手动检查发布的值。

    【讨论】:

      【解决方案2】:

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

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

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

      在PHP中你应该检查如果没有输入值,那么应该采用默认值。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            任何时候你在 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"]; 
            
            ?>
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-10-06
              • 1970-01-01
              • 1970-01-01
              • 2021-04-17
              • 2023-03-24
              • 1970-01-01
              • 1970-01-01
              • 2014-02-04
              相关资源
              最近更新 更多