2012-02-13 20 views
0

この質問はとても基本的なので、私はそれを聞いて恥ずかしいですが、それは私に困惑しています。フォームを1回送信してください。ページがリフレッシュされたときに提出しない

<form id="MyForm" method="post" enctype="multipart/form-data" > 
    <input type="file" id="get_file" name="get_file" > 
    <input type="submit" name="submitForm" value="Submit" > 
</form> 

<?php 
    if (isset($_POST['submitForm'])) { 
    echo "<script type='text/javascript'>alert('Selected')</script>"; 
} else {  
    echo "<script type='text/javascript'>alert('Not selected')</script>"; 
} 
?> 

初めてこのページを読み込むと、アラートに「選択されていません」と表示されます。良い。私はフォームを提出し、警告は「選択済み」と表示されます。また良い。しかし、私はページを更新するとき、それはまだ "選択"です。私はなぜ "IF"声明がこれを可能にするのか理解していない。フォームを一度送信してから、ユーザーがそれをやり直すまでは、ページが更新されるたびに再開しないようにしたい。

これは、Googleを使用するにはあまりにも怠惰なときにnoobsが尋ねる質問のようですが、私は見てきました(このサイトにはこの問題の種類のスレッドがあります。溶液)。私はHTMLフォームを読んだことがありますが、まだそれは得られません。

誰もが知っているものですか?誰かが私を手がかりにすることはできますか?ありがとう。

EDIT:誰でもこのスレッドを揺らしていて、すばやく修正が必要な場合は、ここで私はちょうどうんざりしました。選択キーをもう一度押すだけで、jQueryを使用して簡単に実行できます。フォームは再送信されますが、フォーム変数はすべてクリアされます。エレガントではないかもしれませんが、完璧に動作します。

答えて

1

ページをリロードすると、POST要求を再送信しています。つまり、submitForm=Submitは要求本体の一部です。

これを避けるには、Post/Redirect/Getパターンを使用する必要があります。

+0

アレックスありがとうございます。私は自分の検索でそれを見ましたが、リダイレクトが必要だから私には当てはまらないように見えました。私はもっ​​と詳しく見て行きます。 – Stanton

+0

@ user1170140同じページにリダイレクトできます。 – alex

+0

私はこのような別のページにリダイレクトしました: 'redirect :: return( 'mypage'、array( 'newmember'、$ newmember))'、リダイレクトされましたがデータにアクセスできませんでした。 :route( 'mypage') - > with( 'newmember'、$ newmember) ' – BlackPearl

関連する問題