2012-02-18 8 views
0

J'ai le suivant * code ci-dessous, chaque fois que je rafraîchis la page il me demande d'envoyer le formulaire à nouveau. Comment puis-je éviter cela, je ne veux pas renvoyer un formulaire sur une actualisation de page. Merci d'avance.Page reload demander de soumettre des données encore et encore

* CODE

<?php function make_user_feedback_form() { 
    global $wpdb; 
    global $current_user; 


     $ufUserID = $current_user->ID; 

     if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']) && $_POST['action'] == 'updateFeedback') { 
      $ufDataUpdate = $wpdb->insert('wp_user_feedback', array('date' => current_time('mysql'), 'responses' => $_POST["test"])); 
     } 
     }?> 
    <div id="form"> 
    <ol> 
     <form method="post"> 
      <li><label for="test">Question 01</label><input type="text" id="datepicker" name="test" value="" /></li> <!-- the (name="test") value is what the ('responses' => $_POST["test"]) value is talking too --> 

      <li><input name="submit" type="submit" id="submit" class="submit button" value="Send feedback" /></li> 
      <?php wp_nonce_field('updateFeedback'); ?> 
      <input name="action" type="hidden" id="action" value="updateFeedback" /> 
     </form> 
    </ol> 
    </div> 
    <?php 


add_action('the_content','make_user_feedback_form'); 
?> 

Répondre

1

Après avoir traité les données de formulaire et stockées dans la base de données ou travaillé avec elle d'une certaine façon, recharger la même page en utilisant:

header("location: thispage.php"); 

Faire Cela détruira les données POST et permettra à la page d'être actualisée sans afficher l'alerte de resoumettre.

+0

Je l'ai essayé juste après l'add_action mais j'obtiens cette erreur Impossible de modifier les informations d'en-tête - les en-têtes déjà envoyés –

+0

Vous devez vous assurer que rien n'a été envoyé au navigateur avant d'envoyer l'en-tête. Idéalement, en haut de votre page, vous devriez vérifier si le formulaire a été soumis. Si c'est le cas, enregistrez les données et envoyez l'en-tête. Après cela, vous pouvez afficher le contenu de la page. – creatvepro

Questions connexes