Partage
  • Partager sur Facebook
  • Partager sur Twitter

PHP - rafraîchir une page apres l'envoi d'un formulaire

    30 juillet 2008 à 22:28:31

    Salut à tous! J'ai un petit souci avec les formulaires.
    J'ai créé un formulaire qui, lorsqu'on presse le bouton "submit", l'autre partie du formulaire apparait plus bas. Comme la première partie du formulaire est constituée de boutons de type "radio", j'aimerais qu'après que l'on aie cliqué sur le bouton submit, php enregistre le choix que l'utilisateur a sélectionné.

    Voici un exemple de ce à quoi mon script ressemble:
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    <label for="choix1">Choix 1</label><input type="radio" name="mon_choix" value="choix1">
    <label for="choix2">Choix 2</label><input type="radio" name="mon_choix" value="choix2">
    <input type="submit" value="continuer">
    <?php
    if(isset($_POST['mon_choix']))
    {
    if($_POST['mon_choix'] == 'choix1')
    {
    include "suite_formulaire1.php";
    }
    else
    {
    include "suite_formulaire2.php";
    }
    }
    

    J'ai pensé que peut-être en faisant:

    <?php session_start(); ?>
    <html>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    <label for="choix1">Choix 1</label><input type="radio" name="mon_choix" value="choix1" <?php if($_SESSION['selection'] == 'choix1'){?>checked="checked"<?php }?> />
    <label for="choix2">Choix 2</label><input type="radio" name="mon_choix" value="choix2" <?php if($_SESSION['selection'] == 'choix2'){?>checked="checked"<?php }?> />/>
    <input type="submit" value="continuer"/>
    <?php
    if(isset($_POST['mon_choix']))
    {
    if($_POST['mon_choix'] == 'choix1')
    {
    $_SESSION['selection'] = 'choix1';
    include "suite_formulaire1.php";
    }
    elseif($_POST['mon_choix'] == 'choix2')
    {
    $_SESSION['selection'] = 'choix2';
    include "suite_formulaire2.php";
    }
    }
    </html>
    

    Ca fonctionne, mais seulement après avoir rafraichi la page. Existe-t-il une solution pour rafraichir la page en appuyant sur le bouton "submit" ou une meilleure facon d'afficher le choix de l'utilisateur apres avoir appuyé sur le bouton?

    Merci à tous et bonne journée!
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      30 juillet 2008 à 22:31:34

      Je vois pas le problème du premier code?
      C'est parce qu'il n'y a rien quand on n'a rien coché?
      • Partager sur Facebook
      • Partager sur Twitter
        30 juillet 2008 à 22:32:36

        oui exactement, je veux enregistrer le choix de l'utilisateur...
        • Partager sur Facebook
        • Partager sur Twitter
          30 juillet 2008 à 22:38:45

          Pour rafraichir la page automatiquement tu remplace :
          include "suite_formulaire1.php"; et include "suite_formulaire1.php";

          par le javascript suivant :

          echo "<script>window.location.replace(\"suite_formulaire1.php\")</script>";

          et

          echo "<script>window.location.replace(\"suite_formulaire2.php\")</script>";

          à essayer c pas peut être la meilleure solution :euh:
          • Partager sur Facebook
          • Partager sur Twitter
            30 juillet 2008 à 22:51:21

            En utilisant ta méthode, au lieu de poursuivre le formulaire sur la même page, il charge la page suite_formulaire1 ou 2 sans que les choix précédents restent affichés... Y a-t-il d'autres solutions ou est-ce moi qui a mal compris ce que tu voulais faire?
            Merci de vos réponses!
            • Partager sur Facebook
            • Partager sur Twitter
              30 juillet 2008 à 23:19:04

              Citation : zotrik

              En utilisant ta méthode, au lieu de poursuivre le formulaire sur la même page, il charge la page suite_formulaire1 ou 2 sans que les choix précédents restent affichés... Y a-t-il d'autres solutions ou est-ce moi qui a mal compris ce que tu voulais faire?
              Merci de vos réponses!



              Oui apparemment j'ai pas bien compris ce que tu voulais exactement :honte:

              Mais je me suis basée sur ce que tu as dit

              Citation : zotrik

              Ca fonctionne, mais seulement après avoir rafraichi la page



              Alors on recharge toute la page et non pas la partie du formulaire en question donc le code devient :

              <?php session_start(); ?>
              <html>
              <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
              <label for="choix1">Choix 1</label><input type="radio" name="mon_choix" value="choix1" <?php if($_SESSION['selection'] == 'choix1'){?>checked="checked"<?php }?> />
              <label for="choix2">Choix 2</label><input type="radio" name="mon_choix" value="choix2" <?php if($_SESSION['selection'] == 'choix2'){?>checked="checked"<?php }?> />/>
              <input type="submit" value="continuer"/>
              <?php
              if(isset($_POST['mon_choix']))
              {
              if($_POST['mon_choix'] == 'choix1')
              {
              $_SESSION['selection'] = 'choix1';
              include "suite_formulaire1.php";
              }
              elseif($_POST['mon_choix'] == 'choix2')
              {
              $_SESSION['selection'] = 'choix2';
              include "suite_formulaire2.php";
              }
              echo "<script>window.location.replace(\"mapage.php\")</script>";
              }
              </html>
              


              à tester aussi :euh:
              • Partager sur Facebook
              • Partager sur Twitter
                30 juillet 2008 à 23:27:04

                Moi j'avais un problème pour raffraichir une page car mon navigateur utilisait le cache.
                Ensuite j'ai trouvé cette fonction, que tu place avant le code html, en début de page :

                Citation : Pas de titre

                <?php
                header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
                ?>



                Depuis, les pages se raffraichisse toutes seules. Je sais pas si ça te sera utile.
                Bon courage
                • Partager sur Facebook
                • Partager sur Twitter
                  30 juillet 2008 à 23:38:59

                  Pinkish: encore merci de ta réponse, mais quand je teste ton code, la page réagit exactement comme le code que j'avais écris au tout début: c'est-à-dire que si je sélectionne un choix et que j'appuie sur "submit", les choix ne sont pas enregistrés. Pour que les variables de session soient bien affectées, il faut appuyer sur "rafraîchir" pour que le choix que l'utilisateur a entré s'affiche.D'après moi le problème ne vient pas de ton code, mais des variables de session. en fait, ce qui reglerais mon problème, c'est que mon bouton submit cliques rafraîchirais deux fois la page; je m'explique: si je cliques deux fois sur ce bouton, le bouton radio se met à la bonne place...

                  RomG: Merci aussi de ta réponse, mais cela ne change pas le comportement de la page.

                  Merci de votre patience :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 décembre 2010 à 16:21:16

                    Je voudrais savoir comment faire pour rafraichir la frame en-dessous de celle de mon fichier quand j'appuis sur un bouton.

                    explication :
                    j'ai ma frame questionnaire avec un bouton submit.
                    En dessous j'ai ma frame avec un tableau qui comprend toutes les donnees du questionnaire.
                    et je veux que quand j'appui sur le dernier bouton du questionnaire ca actualise ma frame du tableau

                    merci d'avance
                    • Partager sur Facebook
                    • Partager sur Twitter

                    PHP - rafraîchir une page apres l'envoi d'un formulaire

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown