2011-11-20 3 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