2011-05-09 57 views
0

我想提交表单并更新记录后,在PHP的帮助下清除表单。如何通过PHP清除html表单?

+0

你是什么意思“清除我的表单”?你能否更详细地解释你的问题?一些代码证明了这个问题呢? – Charles 2011-05-09 07:03:27

+3

咦?恰恰相反,你通常需要产生大量代码来保存*表单输入。清除它应该像无所事事一样简单... – deceze 2011-05-09 07:03:42

回答

0

html表单是客户端......而PHP运行服务器端,本质上你将不得不使用客户端代码在onsubmit动作中重置表单的值。最简单的方法是使用javascript清除所有输入的值。

+2

客户端重置的最简单*方法是 2011-05-09 07:16:05

+0

是的,这个问题有点含糊 – samccone 2011-05-09 18:11:51

+0

这是一个正确的答案,但我也认为这是一个很好的做法,有一个备份的情况下,让我们说,JavaScript没有启用(罕见,但可能发生)。所以,如果你不通过PHP来做到这一点,并且JavaScript没有启用,你的网站将无法正常工作。或者至少是它的一大部分。 – Limon 2014-02-04 19:47:26

2

我会建议你在提交表单后重定向用户。这将清除所有POST或GET数据。

header('Location: foobar.php'); 

或者您可以在成功提交后取消设置值。

unset($_POST['fieldname'], $_POST['fieldname2']); 
+1

据我所知,清除POST变量将无济于事。如果用户重新加载页面,POST数据将被重新发送。 – Svish 2011-05-09 07:14:25

1

只需取消您用于填充表单的变量。

0

你可以,如果重新加载页面unset POST/GET变量和避免数据重发:

PHP代码:(avoidResend.php):

if(!empty($_POST) OR !empty($_FILES)) 
{ 
    $_SESSION['save'] = $_POST ; 
    $_SESSION['saveFILES'] = $_FILES ; 

    $currentFile = $_SERVER['PHP_SELF'] ; 
    if(!empty($_SERVER['QUERY_STRING'])) 
    { 
     $currentFile .= '?' . $_SERVER['QUERY_STRING'] ; 
    } 

    header('Location: ' . $currentFile); 
    exit; 
} 

if(isset($_SESSION['save'])) 
{ 
    $_POST = $_SESSION['save'] ; 
    $_FILES = $_SESSION['saveFILES'] ; 

    unset($_SESSION['save'], $_SESSION['saveFILES']); 
} 

包括在你的页面的最顶端这个文件,提交表格后unset($_POST['v1'], $_POST['v2'], $_POST['v3']);

干杯!