2011-11-20 67 views
0

我創建了一個表單,一切工作都很好。我唯一剩下的就是在提交表單時重置字段。這似乎是一個簡單的任務,但環顧四周,嘗試一些東西似乎沒有任何竅門:(我現在所擁有的東西是從另一篇文章中提取的,但是我的提交事件與他們的不同,這就是爲什麼我認爲它不起作用。非常感謝。php表單 - onsubmit重置表單

PHP部分

/////////////////////////////////上傳圖像

//define a maxim size for the uploaded images in Kb 
define ("MAX_SIZE","500"); 

//This function reads the extension of the file. It is used to determine if the file is an image by checking the extension. 
function getExtension($str) { 
    $i = strrpos($str,"."); 
    if (!$i) { return ""; } 
    $l = strlen($str) - $i; 
    $ext = substr($str,$i+1,$l); 
    return $ext; 
} 

//This variable is used as a flag. The value is initialized with 0 (meaning no error  found) 
//and it will be changed to 1 if an errro occures. 
//If the error occures the file will not be uploaded. 
$errors=0; 
//checks if the form has been submitted 
if(isset($_POST['submit'])) 
{ 
//reads the name of the file the user submitted for uploading 
$image=$_FILES['image']['name']; 
//if it is not empty 
if ($image) 
{ 
//get the original name of the file from the clients machine 
    $filename = stripslashes($_FILES['image']['name']); 
//get the extension of the file in a lower case format 
    $extension = getExtension($filename); 
    $extension = strtolower($extension); 
    if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") &&  ($extension != "gif")) 
    { 
    //print error message 
     echo '<h1>Unknown extension!</h1>'; 
     $errors=1; 
    } 
    else 
    { 
//get the size of the image in bytes 
//$_FILES['image']['tmp_name'] is the temporary filename of the file 
//in which the uploaded file was stored on the server 
$size=filesize($_FILES['image']['tmp_name']); 

//compare the size with the maxim size we defined and print error if bigger 
if ($size > MAX_SIZE*1024) 
{ 
echo '<h1>You have exceeded the size limit!</h1>'; 
$errors=1; 
} 

$newname="storeImages/".$filename; 
//we verify if the image has been uploaded, and print error instead 
$copied = copy($_FILES['image']['tmp_name'], $newname); 
if (!$copied) 
{ 
echo '<h1>Copy unsuccessfull!</h1>'; 
$errors=1; 
}}}} 

//If no errors registred, print the success message 
if(isset($_POST['submit']) && !$errors) 
{ 
echo "<h1>File Uploaded Successfully!</h1>"; 
} 

//direct to same page but refresh 
//header('Location: storeListForm.php'); 

?> 

形式

<body> 

<script type="text/javascript"> 
function onFormSubmit() 
{ 
    document.storeList.reset(); 
    return true; // allow form submission to continue 
} 
</script> 

<div id="signUp"> 

<?php 
//if the validation falls back to php, then print the validation error 
if (isset($error_message)) echo $error_message; 
?> 

<form method="post" action="" id="storeList" name="storeList" enctype="multipart/form- data"> 
<table> 
<tr> 
    <td><label for="name">Name</label></td> 
    <td><input type="text" name="name" id="name" value="<?php if (isset($_POST['name'])) echo $_POST['name'];?>"/></td> 
</tr> 
<tr> 
    <td> <label for="storeLocation">Location</label></td> 
    <td><input type="text" name="storeLocation" id="storeLocation" value="<?php if (isset($_POST['storeLocation'])) echo $_POST['storeLocation'];?>"/></td> 
</tr> 
<tr> 
    <td><label for="featured_items">Featured Items</label></td> 
    <td><input type="text" name="featured_items" id="featured_items" value="<?php if (isset($_POST['featured_items'])) echo $_POST['featured_items'];?>"/></td> 
</tr> 
<tr> 
    <td><label for="keywords">Keywords</label></td> 
    <td><input type="text" name="keywords" id="keywords" value="<?php if  (isset($_POST['featured_items'])) echo $_POST['keywords'];?>"/></td> 
</tr> 
<tr> 
    <td><label for="fileImage">Image</lable></td> 
    <td><input type="file" name="image"></td> 

</tr> 
    <td>Description</td> 
    <td> <textarea for="description"></textarea type="text area" name="description" id="description" value="><?php if (isset($_POST['description'])) echo $_POST['description'];?>"/></td> 
</tr> 
<tr> 
    <td></td> 
    <td><input type="submit" name="submit" id="submit" value="Add Store" onsubmit="this.submit(); this.reset(); return false;"></td> 
</tr> 
</table> 
</form> 
</div> 
</body> 
+0

發生了什麼,你想要發生什麼? – sissonb

+0

用戶輸入輸入,然後單擊提交。一切都提交正常,但字段仍然包含輸入。一旦用戶提交,我希望它們是空的,以便他們可以輸入更多數據。 – bjstone15

回答

0

P可能你正在尋找這個?

onClick="this.form.reset()"

(此致僅this.reset())。

+0

不行。它在提交該數據之前重置表單。無論如何圍繞? – bjstone15

+0

將它包裝在一個'setTimeout()'中您將需要將一個全局引用保存到窗體中,因爲'this'將會是窗口。 – sissonb