2012-04-11 12 views
0

ユーザーの詳細を入力してファイルをアップロードできるフォームがあります。ファイル名と情報はcsvファイルに保存されます。値を記憶しているフォームを消去する

ユーザーがすべてのフィールドに入力しない場合は、フォームに記入してもう一度お試しください。私は、ユーザーが入力した値を覚えて、それを望んでいたので、私はPHPを使用して、フォームフィールドのデフォルト値を設定します。

value="<?php print $fulltitle;?>" 

どこ$ fulltitle = $ _POST [「fulltitle」];

しかし、ユーザーが何か失敗したことを送信した場合、ヒットリセットはフォームをクリアしません。以前の試行を返します。

リセット機能を動作させるにはどうすればよいですか? PHPは、すでにあなたがリセットを打つ時間で処理されるので、私は

onclick="<?php $fulltitle='' ?>" 

を使用しようとしましたが、効果がないようだリセットボタンでは、私は推測します。

誰もが何か提案がありますか?


EDIT:助けを

おかげで示唆したように、私はシンプルなリロードでこれを解決しました。

<?php 
$firstname = '' ; 
$lastname = '' ; 
$fulltitle = '' ; 
$email = '' ; 
// etc. 

header("Location: submitfile.php"); 
?> 

submitfile:私が持っているファイルresetform.phpで

<FORM METHOD="LINK" ACTION="resetform.php"> 
<INPUT TYPE="submit" VALUE="Reset"> 
</FORM> 

:私は入れてリセットボタンの代わりに

:問題への答えを探している人のために 。 PHPは、フォーム

/EDIT


です

トリミングされたコードは以下の...

ヘッダー:

<?php 
//error_reporting(E_ALL & ~E_NOTICE); 
$message = false; 

if(isset($_POST['Submit'])){ 

//user input with commas and < stripped: 
    $firstname = str_replace("<","",str_replace(",",";",$_POST['firstname'])); 

//if values missing, dont process: 
    if(empty($firstname)){ 
     $message = '<span style="color:red;text-align:center;">Please complete all required(*) fields,<br />and check the file has been selected correctly.</span>'; 
     $aClass = 'errorClass'; 
    } 

else { 
    //return data array cvsData from user input 

    $cvsData = $firstname 
    fwrite($fp,$cvsData); 
    fclose($fp); 
    //reset form 
    $firstname = '' ;   
    $message = '<span style="color:blue;text-align:center;">Submission successful, thank you.</span>'; 
    } 

} 
//if page reloaded, clear form: 
else { 
    $firstname = '' ; 
    } 

?> 

ボディ:それは元の値だとリセットを押す

<form enctype="multipart/form-data" id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" > 
<table> 
<?php 
if ($message != false) 
    { 
    print "<tr><td colspan='2'><span align='center'>" . $message . "</span></td></tr>"; 
    } 
?> 

<tr> 
    <td width="200"><span class="texto">*First Name(s)</span></td> 
    <td><input type="text" name="firstname" id="firstname" value="<?php print $firstname;?>" /></td> 
</tr> 

<tr> 
    <td colspan="2"> 
     <div align="center"> 
      <input type="submit" name="Submit" id="Submit" value="Submit"/> 
      <input type="reset" name="Reset" id="Reset" value="Reset" /> 
     </div> 
    </td> 
</tr> 
</table> 

+0

私はこのどこかの完璧なデュープがありますかなり確信しています。しかしその間に、http:// stackoverflowを参照してください。com/questions/10001844 /フォームを使用して固定値を使用する方法とhttp://stackoverflow.com/questions/680241/resetting-a-multi-stage-form-with-jquery – NullUserException

+0

申し訳ありませんが、私は試しましたが、Googleの言葉で十分に質問をすることはできません:) – ralph346526

答えて

2

だけでフォームをリセットします。あなたのケースでは、元のフォーム提出値です。これは、value属性で設定したものです。ユーザーに空白のフォームを提示する場合は、JavaScriptを使用してフォームの値を完全に削除する必要があります。ここで

はそれを行う必要があるのJavaScriptスニペットです:

function clear_form_elements(ele) { 

    tags = ele.getElementsByTagName('input'); 
    for(i = 0; i < tags.length; i++) { 
     switch(tags[i].type) { 
      case 'password': 
      case 'text': 
       tags[i].value = ''; 
       break; 
      case 'checkbox': 
      case 'radio': 
       tags[i].checked = false; 
       break; 
     } 
    } 

    tags = ele.getElementsByTagName('select'); 
    for(i = 0; i < tags.length; i++) { 
     if(tags[i].type == 'select-one') { 
      tags[i].selectedIndex = 0; 
     } 
     else { 
      for(j = 0; j < tags[i].options.length; j++) { 
       tags[i].options[j].selected = false; 
      } 
     } 
    } 

    tags = ele.getElementsByTagName('textarea'); 
    for(i = 0; i < tags.length; i++) { 
     tags[i].value = ''; 
    } 

} 

その後、あなたのリセットボタンでこれを置く:

onclick="clear_form_elements(this.form[0])" 
+0

ありがとう、私はリセットボタン "onclick"プロパティを使用して関数を呼び出すか、より良い方法はありますか? – ralph346526

+0

もう1つのオプションは、ページをリロードして(元の形式でPHPに出力させる)だけです。 – NullUserException

+0

これって何? ralph346526