2016-09-05 11 views
1

基本的には、提出後にすべてのフォーム値をリセットしようとしています。私はすべての投稿を試しましたが、成功はありません。投稿後に値をリセットする方法を教えてください。ページを更新した後にフォームが再び送信されないようにしてください。ありがとうございます。私のコードはここにあります。私はヘッダーを試しましたが、エラーが出るので、投稿後に投稿投稿をリセットする別の方法を教えてください。

<form name="myForm" id="myForm" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" role="form"> 
    <div class="form-group"> 
    <label>Name</label> 
    <span class="Name_input"> </span> 
    <input name="Name" id="Name" type="text"  class="form-control" required placeholder="Your name" /> 

         </div> 
         <div class="row"> 
          <div class="col-md-6"> 
           <div class="form-group"> 
            <label>Email</label> 
            <span class="Email_input"> </span> 
            <input name="Email" id="Email" type="text" class="form-control" required placeholder="Email address" /> 
           </div> 
          </div> 
          <div class="col-md-6"> 
           <div class="form-group"> 
            <label>Phone</label> 
            <input name="Phone" id="Phone" type="text" class="form-control" placeholder="Phone number" />   

           </div> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label>Subject</label> 
          <span class="Subject_input"> </span> 
          <input name="Subject" id="Subject" type="text" class="form-control" required placeholder="Subject" /> 
         </div> 
         <div class="form-group"> 
          <label>Message</label> 
          <textarea class="form-control" name="message" id="message" placeholder="Write you message here..." style="height:100px;"></textarea> 
         </div> 
         <input type="Submit" name="Submit" value="Send message" class="btn btn-two"/><p><br /></p> 
        </form> 


    if(isset($_POST['Submit'])) 
    { 
    $User_Name=$_POST['Name'];  
    $User_Email=$_POST['Email']; 
    if(isset($_POST['Phone'])) 
    $User_PhoneNumber=$_POST['Phone']; 
    else 
    $User_PhoneNumber=""; 
    $Feedback_Subject=$_POST['Subject']; 
    $Feedback_Message=$_POST['message']; 
    $Inserted=mysqli_query($con, "Insert into feedback (Name , Email, Phone_Number, Subject, Message) 
    VALUES('" . $User_Name . "', '" .$User_Email . "', '" . $User_PhoneNumber. "', '" . $Feedback_Subject . "','" . $Feedback_Message . "')"); 
    } 
+0

提出後、投稿値を '$ _POST = array();'にリセットします。他の解決策は 'header()' – devpro

+0

フォームを一度送信した後は再び送信されません。あなたはこの状況に直面していますか? –

+0

@devproこれを書く場所$ _POST = array();私のコード –

答えて

0

ページを更新するだけでフォームを再送信する必要はありません。しかし、私はちょうど同じ場合でも、新しいページにリダイレクトするためにheader()を使用しています。

ので、ストレートSQLクエリの後:それは今までどのページに

header("Location: page.php"); 

と交換してくださいページ。

も、error: Cannot modify header information - headers already sent

を防ぐために、スクリプトのHTML(前の)一番上に

<?php ob_start(); ?> 

を入れて...そして、あなたの他の質問について:

$(window).bind("pageshow", function() { 
    $("#formvalue1,#formvalue2,#formvalue3").val(''); 

}); 

この意志ページが表示されたときにリロードされなくても起動されます。

+0

エラー:ヘッダー情報を変更できません - 既に送信されたヘッダー –

+0

...スクリプトの冒頭にob_start()を入れてください –

+0

読み取り回答更新 –

関連する問題