2013-01-25 89 views
0

我可能沒有解釋什麼,我「米試圖爲題做的很不錯錯誤,顯示以前POST'd項,所以這裏有雲:需要鍵入=「文本」輸入字段,如果發生

我已經有了一個HTML輸入表單,在.php文件提交時輸入表單文件POST的操作,POST操作具有代碼檢查領域的投入,與此類似:。

 
    <?php 

    ... 

    if ($_POST["submitted"] == 1) { 
     //"submitted" is a hidden field with value '1' in the form 

     $isvalid = 1; // Inits to 1, changes to 0 if something fails checks. 

     $field1 = $_POST["field1"]; 
     $field2 = $_POST["field2"]; 

    ... 

    /* 
     Checks for validation on each field go here, 
     but are not relevant to this question here. 
    */ 

    } 

    if ($isvalid == 1) { 
     // Send email 
    } else { ?> 
     <!-- Print form, and error msg. --> 

    ... 

    <input name="field1" type="text" id="field1" size="32" class="stylingclass"> 

    ... 

所以上面是示例代碼,但這裏是一個真正的問題:如何獲取我的表單中的任何文本輸入字段,並在發生錯誤時自動包含之前的輸入的值,以便用戶可以根據我設置的任何約束來相應地修改條目?

回答

2

您可以使用基本的三元運營商設置的值參數:

<input name="field1" type="text" id="field1" value="<?php echo isset($_POST["field1"]) ? $_POST["field1"] : ''; ?>" size="32" class="stylingclass"> 

注意三元運算符在這裏用來防止如果在$ _POST數組中沒有指定字段的索引,則會出錯

+0

我可以利用我在代碼中早些時候設置的變量(何時'提交== 1')?這樣'$ field1'在提交後立即就會收到'$ _POST'的輸入。 –

+0

當然可以,但是你應該在後期評估之前定義變量。然後你不需要三元組 –

+0

在上面給出的代碼示例中,這幾乎與我的表單中的代碼完全匹配,同時刪除表單的字段名稱並添加替換名稱/數據,同時省略了oodles已經有效的多餘的不相關的殘餘物。鑑於在所有事情開始時,我首先檢查是否已經提交了表單(看看我在if中檢查的地方),如果已經存在,我從'$ _POST'中獲取數據到變量中。這足夠嗎?或者,我應該只是使用你的建議,並使用三元不分? (在代碼中鍵入'$ _POST'千次是邪惡的:/) –

1

只需添加value="<?=$_POST['field1']?>"(假設PHP 5.4,使用<?php echo $_POST['field1'] ?>否則)

相關問題