2012-08-01 143 views
1

我有一個PHP頁面中有很多文本輸入的表單,每個表單都有一個預設值。 當有人通過POST提交頁面時,我想知道其中哪些已被更改,所以我想我可以在有人輸入文本時設置文本屬性(如背景顏色)。我可以通過php POST獲取對象的屬性嗎?

提交後,如何獲得輸入的屬性以查看它們是否已更改? $ _POST ['name_of_text_input']只返回輸入的值?

回答

2

你不能看到它們是否已經如此簡單地改變。

PHP在服務器上運行,一旦數據發送給用戶,就PHP而言,這就是它的結束。它不記得任何東西,除非你明確地告訴它記住(通過session或數據庫中的一些數據)。

你會做下列之一:

  • 必須由JavaScript改變的第二隱變量中顯示爲「改變」或者你比較一些這樣的事情。
  • 在您的PHP代碼中加載初始值,並與它們進行比較以查看它們是否已更改
  • 如果值已預設,您可以在PHP代碼中手動檢查已發佈的值與預設值。
+0

+1秒(比較PHP)選項。 – 2012-08-01 11:47:44

1

您可以爲每個文本輸入添加隱藏字段,並在javascript中爲這些隱藏字段設置一個值(更改輸入事件)。

如果您使用HTML5,如果沒有輸入值,則默認值應取你也許可以使用佔位符

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

在PHP中,你應該檢查。

0

無法使用$ _POST獲取輸入的屬性。但是,您可以使用JavaScript代碼來記住初始輸入的狀態並僅發送更改的字段。

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> 

現在,提交後,你可以用name比較old_name,看看它們是不同的。

0

任何時候你在HTML中具有FORM,什麼POST (HTML)所做的就是與name發送到您的.php服務器端POST陣列中的所有變量。 所以,你可以訪問它們作爲$_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"]; 

?>