提交后,textarea字段中的清洁值

时间:2016-01-09 11:29:27

标签: php

我的textarea字段的表单如下:

<form action="post.php" method="post" accept-charset="utf-8" id="myForm">
<textarea name="content" rows="10" cols="60"></textarea>
<input name="submit" type="submit" value="submit" />
</form>

我执行查询以将值插入表中,如下所示:

$q = "INSERT INTO tableName (x, y, x) VALUES (1, a, b)";
        $r = $mysqli->query($q);
        if ($mysqli->affected_rows == 1) {
            echo '<p>Your post has been entered.</p>';

        } else {
            echo '<p>Your post could not be handled due to a system error.</p>';
        }

假设表单已成功提交,并且邮件返回your post has been entered

如果使用该表单提交值的用户在此之后立即离开页面immediately,则无话可说。但问题是,如果他/她重新加载当前页面(通过刷新浏览器)再次提交,则相同的值会插入到表中,`我不想&#39;。

你能帮我清除textarea字段的值,以便无法重新提交表单(由于表单验证),使用php吗?

由于

5 个答案:

答案 0 :(得分:1)

因此它保持相同值的原因是因为浏览器缓存表单输入以帮助意外离开页面的用户。 (例如:点击“后退”按钮)

您可以使用venkatKA建议的Javascript / jQuery方法,但我建议您在页面中添加:

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">

正如How to prevent browser from caching form fields?

中所述

答案 1 :(得分:0)

在提交到数据库后清除所有表单域:

document.forms['form_name'].reset()

答案 2 :(得分:0)

<form action="post.php" method="post" accept-charset="utf-8" id="myForm" autocomplete="off">
        <textarea name="content" rows="10" cols="60"></textarea>
        <input name="submit" type="submit" value="submit" />
</form>

请参阅此网址以停用表单自动填充功能: http://www.w3schools.com/tags/att_input_autocomplete.asp

答案 3 :(得分:0)

将页面重定向到任意位置 在点击您的查询后

使用:

$q = "INSERT INTO tableName (x, y, x) VALUES (1, a, b";
    $r = $mysqli->query($q);
    if ($mysqli->affected_rows == 1) {
        header('location:note/form');
        echo '<p>Your post has been entered.</p>';
    } else {
        echo '<p>Your post could not be handled due to a system error.</p>';
    }

将标题位置更改为您要重定向的页面。

重定向到另一个页面将更改URL,并且数据不会保留在缓存中,并且之后不能提交相同的记录。

享受!

答案 4 :(得分:0)

只需在js文件中添加以下内容

即可
$("form :input").attr("autocomplete", "off");

或更改您的表单标记,如下所示

 <form action="post.php" method="post" accept-charset="utf-8" id="myForm" autocomplete="off">