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

情到浓时终转凉″ 提交于 2019-12-11 07:10:08

问题


Suppose I have a form like this:

<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>

Usually if I wish to save content inserted in a field of the form I would use this statement:

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

This way if I make a mistake in submission (error control code is not posted) the values inserted will be kept, and there is no need to reinsert them.

However using it in the textarea tag it will not produce the desired result.

Any ideas on how to do?

Thanks in advance!


回答1:


Don't forget about htmlspecialchars(). This should help: https://developer.mozilla.org/en/HTML/Element/textarea

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



回答2:


You could use the same approach, but put the echo between the opening and closing <textarea></textarea> tags, as the textarea doesn't have a 'value' (as such) it has textual content:

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



回答3:


Use the $_POST variable like this.

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

the inline conditional checks if the $_POST['post_text'] is set to remove the NOTICE warning




回答4:


You would put it inside the <textarea> element like so:

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

However, calling the $_POST element directly is not best practice. You should rather do something like this:

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

This stops an E_NOTICE error from being reported upon the first page-load.



来源:https://stackoverflow.com/questions/7632660/how-to-keep-text-inserted-in-a-html-textarea-after-a-wrong-submission

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!