Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

    Bonjour,

    Je suis sous joomla 2.5, et je termine mon formulaire créé avec le mode ClassicMode Breezingforms.

    Je souhaite que le formulaire permette à l'utilisateur de pouvoir être diriger après soumission vers une des pages qu'il aura choisie.

    J'ai donc sur la dernière page plusieurs "boutons graphiques" avec la mention "valider" pour chacun de ces boutons.

    Voici le genre code rentré dans le script de soumission du formulaire :

    function ff_Dom_submitted(status)
    {
    if (status != 'line1')
    {
    ff_switchpage(ff_getPageByName('pst_one')); // thank you
    } else
    if (status != 'line2')
    ff_switchpage(ff_getPageByName('pst_two')); // thank you
    } // ff_Dom_submitted


    Et pour les données 'line1' et 'line2' je sélectionne "validate_submit"


    Hic : le formulaire est bien soumis mais la validation de 'line2' me renvoie uniquement à 'pst_one' au lieu de 'pst_two'

    Après maintes bidouillages, je ne trouve toujours pas, je pense ne pas être très loin de la solution...

    Une aide SVP ?

    D'avance merci !!!

  • #2
    Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

    Bonjour,
    Tu es sur du contenu de ta variable pour la redirection ?
    Si elle passe mal, elle sera toujours différente de "line1" et c'est pourquoi tu arriveras toujours sur ta page "pst one"...
    Vérifie ce que renvoie ta variable...
    Cordialement,
    Chabi01 - http://www.xlformation.com

    Commentaire


    • #3
      Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

      Merci pour ta réponse, mais qu'est une "variable" ? Ou se trouve-t-elle ?

      Commentaire


      • #4
        Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

        Hum, dernières questions bêtes après recherches, je débute avec le langage php ...
        Non Chabi01, je n'ai pas utilisé de contenu de variable, si je comprends mieux ta question.

        Cordialement

        Commentaire


        • #5
          Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

          Ok, alors, on va faire autrement : est-ce que tu peux faire un package de ton formulaire et le poster ici ?
          Cordialement,
          Chabi01 - http://www.xlformation.com

          Commentaire


          • #6
            Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

            Merci pour ton aide, j'ai réalisé un package du formulaire, est-ce cette écriture dont tu as besoin ? :

            <?xml version="1.0" encoding="UTF-8"?>
            -<FacileFormsPackage version="1.7.5 Stable (build 761)" type="autoincrement" id="mypck_001"> <name>mypck_001</name> <title>My First Package</title> <version>0.0.1</version> <creationDate>2012-08-14 19:15:07</creationDate> <author>My Name</author> <authorEmail>my.name@my.domain</authorEmail> <authorUrl>http://www.my.domain</authorUrl> <description>This is the first package that I created</description> <copyright>This FacileForms package is released under the GNU/GPL license</copyright> -<form id="67"> <package>Samples</package> <name>Dom</name> <title>DomLeg</title>

            Je fais un copier-coller de tout le contenu comme ci-dessous ?

            Cordialement

            Commentaire


            • #7
              Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

              ci-dessus

              Commentaire


              • #8
                Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

                Bonjour,

                Il vaut mieux mettre fon package dans un zip et l'envoyer ici. Le copier coller ne va pas aider beaucoup pour debuguer le tout.
                Pas de demande de support par MP.
                S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                Commentaire


                • #9
                  Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

                  Bonjour,

                  Voilà le formulaire en zip
                  form.zip

                  Merci de votre patience

                  Commentaire


                  • #10
                    Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

                    Bonjour,
                    Premier point : tu vérifies dans ton script la valeur de "status" en le comparant avec "line1" et "line2"
                    Hors, sauf erreur de ma part, "status" sert à vérifie si le formulaire a été validé et ne renvoie que la valeur 0 ou 1.

                    Je continue de regarder...
                    Cordialement,
                    Chabi01 - http://www.xlformation.com

                    Commentaire


                    • #11
                      Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

                      J'ai pratiquement terminé, juste un petit bug de redirection à corriger et je mets le package sur le forum...
                      Cordialement,
                      Chabi01 - http://www.xlformation.com

                      Commentaire


                      • #12
                        Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

                        Merci Chabi01 !

                        Je crois bien que tu as raison. Du coup, j'ai abandonné l'idée, mais je suis preneuse si solution il y a ...

                        Cordialement

                        Commentaire


                        • #13
                          Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

                          Bonjour,

                          Voilà le résultat.
                          Le formulaire initial ne pouvait pas fonctionner : la fonction "status" renvoyant 0 (formulaire non soumis) ou 1 (formulaire soumis) et ne pouvant donc pas gérer le passage sur une page particulière du formulaire.

                          Pour résoudre la question, j'ai donc réalisé plusieurs choses : comment savoir sur quel bouton la personne a cliqué au moment de la soumission.
                          Pour cela, j'ai ajouté un champ caché. Ce champ caché va changer de valeur avant la soumission suivant le bouton sur lequel on a cliqué.
                          Nous avons donc 2 boutons et un champ caché. Si la personne clique sur le bouton 1, le champ caché devra prendre la valeur 3 et si je clique sur le bouton 2, le champ caché devra prendre la valeur 4 (j'aurai pu utiliser n'importe quel valeur, cette valeur allant juste servir pour ma condition servant à la redirection vers la bonne page du formulaire après soumission).

                          Dans le formulaire :
                          - il y a 4 pages. La page 1 peut servir à n'importe quoi (elle devra être modifiée plus tard), la page 2 correspond à l'étape des boutons de soumission, la page 3 correspond à la page de sortie si la personne clique sur le bouton 1 et la page 4 correspond à la page de sortie si la personne clique sur le bouton 2 de la page 2
                          j'ai appelé le champ caché "variablepage".

                          Dans la page 2, j'ai mis le code suivant sur le bouton 1 (le bouton étant appelé line1 :
                          Code:
                          function ff_line1_action(element, action)
                          {
                              switch (action) {
                                  case 'click':
                          ff_getElementByName('variablepage').value = 3;
                          ff_validate_submit();
                                      break;
                                  default:;
                          
                              } // switch
                          } // ff_line1_action
                          Ce qui signifie : si la personne clique sur le bouton, j'attribue au champ variablepage la valeur 3 puis j'envoie le formulaire.
                          Le bouton 2 est quasiment identique, seule la valeur change.
                          Code:
                          function ff_line2_action(element, action)
                          {
                              switch (action) {
                                  case 'click':
                          ff_getElementByName('variablepage').value = 4;
                          ff_validate_submit();
                                      break;
                                  default:;
                          
                              } // switch
                          } // ff_line2_action
                          Ceci va donc attribuer une valeur à mon champ caché et me permettre après la soumission de savoir sur quel bouton la personne a cliqué.

                          Pour ensuite rediriger la personne sur la bonne page après la soumission, je vais aller dans la gestion du formulaire : Formulaire > onglet Soumettre des pièces > Fin de soumission > Script personnalisé.

                          Ici, le code est le suivant :
                          Code:
                          $this->execPieceByName('ff_InitLib');
                          $valeur=0;
                          $valeur = ff_getSubmit('variablepage'); 
                          switch( $valeur ){
                          case '3': JFactory::getApplication()->redirect('index.php?option=com_breezingforms&ff_name=Dom&ff_page=3&Itemid=501'); exit; break;
                          case '4': JFactory::getApplication()->redirect('index.php?option=com_breezingforms&ff_name=Dom&ff_page=4&Itemid=501'); exit; break;
                          }
                          Voici l'explication du script :
                          Ligne 1 : on initialise le script.
                          Ligne 2 : je mets ma variable $valeur à zéro (petit réflexe
                          Ligne 3 : je récupère la valeur stockée dans "variablepage" (mon champ caché) et je stocke cette valeur dans la variable $valeur de mon script
                          Ligne 4 : je lance un switch (suivant la valeur trouvée, je lui demande de se brancher sur la ligne de traitement correspondante, soit 3 ou 4 ici)
                          Ligne 5 : je traite le cas ayant la valeur 3
                          Ligne 6 : je traite le cas ayant la valeur 4
                          Ligne 7 : on ferme le switch.

                          Voyons comment est traité la ligne 5 (la ligne 6 étant quasiment identique).
                          Code:
                          case '3': JFactory::getApplication()->redirect('index.php?option=com_breezingforms&ff_name=Dom&ff_page=3&Itemid=501'); exit; break;
                          Si la valeur est 3 (case '3'), je redirige alors la page (JFactory::getApplication()->redirect) vers le formulaire à la bonne page :

                          index.php?option=com_breezingforms&ff_name=NOMDEMONFORMULAIRE&ff_page=NUMERODELAPAGE&Itemid=A_RECUPERER'

                          Les valeurs à remplacer sont le nom du formulaire (ici le formulaire s'appelle "Dom"), le numéro de la page du formulaire (ici, je veux renvoyer sur la page 3) et l'itemid (nécessaire pour Joomla pour afficher correctement les modules appelés sur la page. Cet itemid est facilement identifiable si on désactive temporairement le SEF de Joomla et que l'on regarde l'url lors du chargement de la première page du formulaire. Chez moi, c'est 501, mais il faut adapter cette valeur).

                          A partir de là, la ligne 6 est identique à la précédente, seul le numéro de page change.

                          Pour finir, je met le formulaire en pièce jointe ci-dessous.

                          Voilà
                          Cordialement,
                          Fichiers joints
                          Dernière édition par chabi01 à 17/08/2012, 09h13
                          Chabi01 - http://www.xlformation.com

                          Commentaire


                          • #14
                            Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

                            Mille merci Chabi01 pour ce temps passé à te pencher sur le problème !

                            Cette redirection fonctionne à merveille !!!
                            De plus, tes explications sont vraiment claires ce qui me permet de mieux me les approprier (débutante oblige) !

                            Cordialement

                            Commentaire


                            • #15
                              Re : Breezingforms : Rediriger l'utilisateur vers la page choisie après validation

                              De rien
                              Et ce code peut être réutilisé pour plein de choses différentes : imagines que tu peux à partir d'un formulaire faire une zone déroulante et renvoyer par exemple sur n'importe quelle page de ton site ou d'un site extérieur, récupérer une données sur un formulaire pour accéder à une partie du formulaire (pour avoir des formulaires interactifs un petit peu travaillé, etc..)

                              Bonne suite
                              Cordialement,
                              Chabi01 - http://www.xlformation.com

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X