We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 34001
    • 428 Posts
    Bonsoir,

    je tente de construire un formulaire pour une réservation d’équipement de sports d’hiver et j’ai quelques questions concernant la marche à suivre.

    Le workflow est le suivant :

    • le visiteur peut choisir une ou plusieurs activités (ski alpin, ski de fond, luge, surf, etc.) ;
    • pour chacune des activités, il définit un nombre de personnes (par exemple, lui et sa femme veulent faire du ski de fond et leurs 2 enfants vont faire de la luge) ;
    • [li]enfin, il doit préciser différentes informations pour chacune des personnes. Les informations demandées dépendant des activités. Par exemple, pour le ski 4 champs sont demandés : nom, prénom, age, pointure. Pour la luge, c’est simplement 2 champs : nom et prénom.

    Bref, tout ça n’est pas très simple.

    L’idée aurait été de pouvoir créer des champs à la volée.
    Par exemple, le visiteur coche une case pour Ski de fond, et une liste déroulante s’affiche pour donner le nombre de personnes. Il choisit 2 personnes et 2 rangées de champs s’affichent ensuite (par exemple : nom, prénom, age, pointure).

    J’ai commencé quelques recherches, et me suis rendu compte que Javascript (ou AJAX) pouvait résoudre une partie de la question.
    Mais comment gérer ensuite la validation avec eForm ?
    Si la personne oublie de remplir un des champs, comment faire pour que les champs créés avec Javascript s’affichent à nouveau ?

    Bref, quelle est la meilleure manière de mettre en place de genre de formulaire ?
    J’avoue que là, je sèche un peu.  huh
      Intégrateur web freelance
      • 11975
      • 2,542 Posts
      Salut,

      selon moi  tu devrais plutôt voir le processus comme une série d’étape.
      Dans ce cas tu peux peut être t’en sortir avec eform et encore.
      Je ne suis pas sur qu’on puisse ajouter des champs à la volée dans eform même en se basant sur les événements.
      En revanche tu peux choisir le tpl de chaque étape (qui sera parsé par eform pour déterminer les champs et leurs régles de validation) en fonction des choix précédents.

      :-)
        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
        • 34001
        • 428 Posts
        Je n’avais pas envisagé la chose sous cet angle. J’étais resté sur l’idée de tout gérer sur une même page.

        Du coup, je suis tombé sur ce post qui explique comment splitter un formulaire sur plusieurs pages.
        C’est déjà une bonne base de travail.

        Si j’ai bien compris, il me suffirait de me servir des évènements pour gérer des conditions et ainsi afficher tel ou tel template.
        Par exemple, sur le 1er écran, le visiteur choisit pour chaque activité le nombre de personnes, et en fonction de ces paramètres, j’ai une fonction en php qui va faire afficher sur le 2ème écran les champs correspondants.

        Je suis sur la bonne voie ?

        En tout cas, merci beaucoup Helio. Tu m’as ouvert de nouveaux horizons...  grin
          Intégrateur web freelance
          • 11975
          • 2,542 Posts
          Oui c’est tout à fait ça wink

          Ensuite pour l’aspect AJAX, laa solution la plus simple, étant donné que chaque étape est un document, est d’associer à ces documents une template vide pour ne retourner que l’html du form.

          :-)
            Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
            • 34001
            • 428 Posts
            Cool...
            Je vais laisser ça reposer pour la nuit, et je m’y mets demain.

            Encore merci... wink
              Intégrateur web freelance