2012-02-20 42 views
0

當用戶提交表單並出現錯誤時,我希望他們鍵入的任何內容保留在文本框中,以便他們可以編輯它而不是重新輸入它。我正在嘗試使用隱藏字段來存儲此值。設置隱藏字段和PHP的文本框值

echo '<table><form method="post" action="" name="groupInvite"> 
     <tr><td>Event Title:</td><td> <input type="text" name="eventTitle" value = "'.$_POST['hiddenTitle']. '"></td><td>'; 
     $hiddenTitle = $_POST['eventTitle']; 
     echo '<input type="hidden" name="hiddenTitle" value = "' .$hiddenTitle. '">'; 
+0

而你的問題是......? – 2012-02-20 23:23:54

+0

你的問題是什麼? ;) - 順便說一句,你的代碼不是有效的HTML。 – Zeta 2012-02-20 23:24:11

+0

我不知道我能做多少更清楚。當用戶提交表單並出現錯誤時,我希望他們輸入的內容保留在文本框中,以便他們可以編輯它而不是重新輸入。 – user1104854 2012-02-20 23:27:49

回答

1

此:

<input type="hidden" name="hiddenTitle" value = "'<? $_POST['eventTitle'] >?'"> 

應該是:

<input type="hidden" name="hiddenTitle" value="<?= $_POST['eventTitle'] ?>" /> 

<?=相同<? echo。你也把結束標記混淆了,你在雙引號內有單引號 - 我假設你不需要這些,所以我已經刪除了它們,但是如果你打算讓它們顯示在文本框中你仍然可以將它們添加回來。

前面的文本元素也將需要的<?=代替<?


當您提交表單,一切都在$ _POST數組中舉行(假設你張貼的形式)。

在您的表單中,您有一個用戶填寫的文本框,然後提交。只有當它; S提交將在$ _POST數組被填充,因此,所有你需要做的是這樣的:

<table><form method="post" action="" name="groupInvite"> 
<tr><td>Event Title:</td><td> <input type="text" name="eventTitle" value="<? if(isset($_POST['eventTitle']) && trim($_POST['eventTitle']) != ''){ echo $_POST['eventTitle']; } ?>"></td><td> 

我們檢查,看是否$_POST['eventTitle']存在(如果表單已基本提交了),而且它的不是空的。如果是這種情況,我們會將它的內容回顯到文本框的值中。

+0

所以我不能使用隱藏字段來做到這一點,或者我需要其他方式來維護文本框中的內容嗎? – user1104854 2012-02-20 23:59:22

+0

我已經更新了答案,這是什麼意思? – BenOfTheNorth 2012-02-21 00:06:09

+0

真棒工作!現在看起來很有意義,我想我剛開始並不明白。再次感謝! – user1104854 2012-02-21 00:14:07

相關問題