0

当我按下“发送”按钮时,PHP 检查字段“pm_to”是否<1。如果成功,打开一个警报,但是当我在警报上按 OK 时,我在 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">

4

2 回答 2

0

发出表单请求时,HTML 元素不会保持其值。您需要手动执行此操作:

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

在这种情况下,我使用内联 if 来检查变量$_POST['area1']是否已设置。如果是,它会打印您的 HTML 转义值,否则它将打印一个空字符串(无)。

您应该对其他输入执行相同的操作。例如:

<input class="pm_" type="text" name="pm_to" size="15" value="<?= isset($_POST['pm_to']) ? htmlspecialchars($_POST['pm_to']) : ''; ?>">
于 2013-10-25T23:01:54.113 回答
0

我不了解 PHP,但我的猜测是,当您从服务器将其发送回客户端时,您需要重新填充 html。像这样的东西?

<textarea style="height: 200px; width: 800px; text-align: left;" id="area1" name="area1"> 
<? print($_POST[area1])>
</textarea>
于 2013-10-25T23:00:18.780 回答