如何保持文本插入到html <textarea>提交错误后


How to keep text inserted in a html <textarea> after a wrong submission?

假设我有一个这样的表单:

<form action="page.php" method="post">
    Section1: <input name="section1" type="text"></br>
    Section2: <input name="section2" type="text"></br>
    Text:</br>
    <textarea name="post_text" cols="100" rows="20"></textarea>
    <input name="submit" type="submit" value="Submit">
</form>

通常,如果我想保存插入到表单字段中的内容,我会使用下面的语句:

Section1: <input name="section1" type="text" vale="value="<?php echo $_POST['section1']; ?>""></br>

这样,如果我在提交时犯了错误(没有发布错误控制代码),插入的值将被保留,并且不需要重新插入它们。

然而,在textarea标签中使用它不会产生期望的结果。

有什么好主意吗?

提前感谢!

不要忘记htmlspecialchars()。这应该有帮助:https://developer.mozilla.org/en/HTML/Element/textarea

<textarea name="post_text" cols="100" rows="20"><?php echo htmlspecialchars($_POST['post_text']);?></textarea>

您可以使用相同的方法,但将echo放在开始和结束<textarea></textarea>标记之间,因为textarea没有'值'(这样)它有文本内容:

<textarea name="post_text" cols="100" rows="20"><?php echo $_POST['textareaContent']; ?></textarea>

像这样使用$_POST变量

<textarea name="post_text" cols="100" rows="20"><?= isset($_POST['post_text'])?$_POST['post_text']:'' ?></textarea>

内联条件检查$_POST['post_text']是否设置为删除NOTICE警告

您可以像这样将其放入<textarea>元素中:

<textarea name="post_text" cols="100" rows="20"><?php echo $_POST['post_text']; ?></textarea>
但是,直接调用$_POST元素并不是最佳实践。你应该这样做:
<textarea name="post_text" cols="100" rows="20">
<?php echo $var = isset($_POST['post_text']) ? $_POST['post_text'] : ''; ?>
</textarea>

这可以防止在第一次加载页面时报告E_NOTICE错误。