2013-10-25 87 views
0

當我按下「發送」按鈕時,PHP會檢查字段「pm_to」是否爲< 1. 如果成功,請打開警報,但是當我按下警報時確定,所有文本已寫在textarea「area1」被刪除。我如何防止這種情況? 這是代碼。防止重置文本區

<? 
$txtmsg=addslashes($_POST[area1]); 
if($_POST[sendpm]=="Invia il messaggio"){ 
    if(strlen($pm_to)<1){ 
    ?> 
     <script type="text/javascript"> 
      alert("Non puoi lasciare il campo destinatario vuoto, riprova."); 
     </script> 
    <? 
    } 
} 
?> 
<form method="POST"> 
A: <input class="pm_" type="text" name="pm_to" size="15">&nbsp;&nbsp;Oggetto: <input size="30" class="pm_" type="text" name="pm_subj" > 
<br /><br /> 
<textarea style="height: 200px; width: 800px; text-align: left;" id="area1" name="area1"></textarea> 
<br /> 
<input type="submit" value="Send" name="sendpm"> 

回答

0

我不知道PHP,但我的猜測是,你需要的時候,你從服務器發送回客戶端重新填充HTML。像這樣?

<textarea style="height: 200px; width: 800px; text-align: left;" id="area1" name="area1"> 
<? print($_POST[area1])> 
</textarea> 
0

當進行表單請求時,HTML元素不保留它們的值。你需要做手工:

<textarea style="height: 200px; width: 800px; text-align: left;" id="area1" name="area1"> 
<?= isset($_POST['area1']) ? htmlspecialchars($_POST['area1']) : ''; ?> 
</textarea> 

在這種情況下,我使用的是內聯如果要檢查變量$_POST['area1']設置。如果是的話,它打印你的值HTML轉義,否則它會打印一個空字符串(沒有)。

您應該對其他輸入做同樣的處理。例如:

<input class="pm_" type="text" name="pm_to" size="15" value="<?= isset($_POST['pm_to']) ? htmlspecialchars($_POST['pm_to']) : ''; ?>">