每当我单击表单提交按钮 [PHP] 时,文本区域内容都会自动清除


textarea content auto clears whenever i click the form submit button [PHP]

我有一个带有表单提交按钮的文本区域。每当我单击提交按钮时,文本区域上的内容都会清除。但我不想清除我的文本区域的内容。这是我的代码

代码页.php

<?php
$ans = "hello";
if (isset($_POST['textcode'])) {
    {
        if ($_POST['textcode'] == $ans) {
            echo "<div id=errorPlace>proceed to next lesson</div>";
        }
        else
        {
            echo "<div id=errorPlace>Error</div>";
        }
    }
}
?>

<form  method="POST" name="validatePHP">
    <textarea name="textcode"></textarea>
    <input type="submit" class="btnSubmit" title="Submit Code" name="add" value=""></input>
    </form>

感谢您的回答!成功了。现在我有另一个问题,如果文本区域中已经有一个预加载的文本,当我在其中输入另一个文本并单击提交按钮时,文本区域现在应该有我输入的文本和文本区域中的预加载文本。

这是我更新的代码

<?php
$ans = "hello";

if (isset($_POST['textcode'])) {
    {
        if ($_POST['textcode'] == $ans) {
            echo "<div id=errorPlace>proceed to next lesson</div>";
        }
        else
        {
            echo "<div id=errorPlace>Error</div>";
        }
    }
}
?>
<form  method="POST" name="validatePHP">
    <textarea name="textcode"><?php if(isset($_POST['textcode'])) { 
     echo htmlentities ($_POST['textcode']); }?>hell</textarea>
    <input type="submit" class="btnSubmit" title="Submit Code" name="add" value=""></input>
    </form>

提交后尝试渲染内容

<textarea name="textcode"><?= $_POST['textcode']; ?></textarea>
<textarea name="textcode">
<?php if(isset($_POST['textcode'])) { 
     echo htmlentities ($_POST['textcode']); }?>
</textarea>

也许你可以用 _SESSION 美元来做?

在页面顶部键入session_start();
然后在里面

 if ($_POST['textcode'] == $ans) {
     echo "<div id=errorPlace>proceed to next lesson</div>";
 }

像这样添加代码$_SESSION['textareaMsg'] = $_POST['textcode'];...

 if ($_POST['textcode'] == $ans) {
     echo "<div id=errorPlace>proceed to next lesson</div>";
     $_SESSION['textareaMsg'] = $_POST['textcode'];
 }

然后,在设置文本区域的位置,只需将其替换为此内容即可。

<?php
    if(isset($_SESSION['textareaMsg'])){
        echo '<textarea name="textcode">'.$_SESSION['textareaMsg'].'</textarea>';
    }else{
         echo '<textarea name="textcode"></textarea>';
    }
?>

这通过在提交表单时将文本区域另存为会话变量,并在加载表单时检查其是否设置,如果是,则它将用会话中设置的内容替换文本区域的内容。希望这有帮助!

尝试以下代码

   <?php
        $ans = "hello";
        $textcode = ""; //declare a variable without value to avoid undefined error
        if (isset($_POST['textcode'])) {
            {
                $textcode=$_POST['textcode']; //assign the value to variable in you if statment
                if ($textcode == $ans) { //useing variable in if statment
                    echo "<div id=errorPlace>proceed to next lesson</div>";
                }
                else
                {
                    echo "<div id=errorPlace>Error</div>";
                }
            }
        }
        ?>

        <form  method="POST" name="test.php">
            <!--echo user input -->
           <textarea name="textcode"><?php echo $textcode; ?></textarea>
            <input type="submit" class="btnSubmit" title="Submit Code" name="add" value=""></input>
        </form>