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

    je dois créer un gros formulaire avec des champs de texte, des groupes de boutons radio,des groupes de cases à cocher et la possibilité d’envoyer une photo.

    j’ai déjà utilisé eform pour des formulaires de contacts simple (nom, prénom, mail, message) pas de soucis de ce côté-là.
    chaque information à son [tt]eform="information::1:"[/tt] propre.

    par contre pour la gestion des cases à cocher, des boutons radios et de l’envoi de photo, je sèche un peu, comment doit-on les gérer ?
    j’ai jeté un oeil à la doc de eform, il est noté que les cases à cocher et boutons radios sont gérés automatiquement, mais je suppose qu’il fait quand même faire quelques manips !

    ci-joint le code de mon formulaire (la mise en "style" finale sera faire quand le formulaire sera ok)
    c’est pour un client qui installe des panneaux photovoltaïques

    [tt]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans nom</title>
    </head>

    <body>

    <p class="error">[+validationmessage+]</p>

    <form action="[~[*id*]~]" method="post" enctype="multipart/form-data" id="EmailForm">

    <input name="formid" type="hidden" value="ContactFormdevis" />





    <p class="contact">
    <label for="cfName"><span class="etiquette">Nom pr&eacute;nom :</span>
    <input name="name" type="text" class="text" id="cfName" size="40" eform="Your Name::1:" /></label>


    </p>
    <p class="contact">
    <label for="cfEmail"><span class="etiquette">E-mail :</span>
    <input name="email" type="text" class="text" id="cfEmail" size="40" eform="Email Address:email:1:" /></label>

    </p>

    <p class="contact">
    <label for="cftelephone"><span class="etiquette">T&eacute;l&eacute;phone :</span>
    <input name="telephone" type="text" class="text" id="cftelephone" size="40" eform="telephone::1:" /></label>

    </p>

    <p class="contact">
    <label for="cfadresse"><span class="etiquette">Adresse :</span>
    <input name="adresse" type="text" class="text" id="cfadresse" size="40" eform="adresse::1:" /></label>

    </p>

    <p class="contact">
    <label for="cfcodepostal"><span class="etiquette">Code postal :</span>
    <input name="codepostal" type="text" class="text" id="cfcodepostal" size="5" eform="codepostal::1:" /></label>

    <label for="cfville"><span class="etiquette">Ville :</span>
    <input name="ville" type="text" class="text" id="cfville" size="40" eform="ville::1:" /></label>

    </p>

    <p class="contact">
    <label for="cfrendezvous"><span class="etiquette">Heure de rendez-vous souhait&eacute;e :</span>
    <input name="rendezvous" type="text" class="text" id="cfrendezvous" size="40" eform="rendezvous::1:" /></label>
    </p>

    <p>Informations concernant votre maison</p>
    <p>le bâtiment
    <label>
    <input name="batiment" type="radio" id="batiment_0" value="bouton radio" checked="checked" />
    Maison individuelle</label>


    <label>
    <input type="radio" name="batiment" value="bouton radio" id="batiment_1" />
    Autre</label>




    orientation (degré/sud) :
    <input type="text" name="orientation" id="orientation" eform="orientation::1:"/>
    degrés</p>
    <p>penteX/horizontale) :
    <input type="text" name="pente" id="pente" eform="pente::1:"/>
    degrés</p>
    <p>largeur disponible :
    <input type="text" name="largeur" id="largeur" eform="largeur::1:"/>
    mètres</p>
    <p>hauteur disponible :
    <input type="text" name="hauteur" id="hauteur" eform="hauteur::1:"/>
    mètres</p>
    <p>

    Informations concernant votre toiture</p>
    <p>Hauteur base du toit :
    <input type="text" name="base" id="base" eform="base::1:"/>
    mètres</p>
    <p>Type de toiture</p>
    <p>
    <label>
    <input name="toiture" type="radio" id="toiture_0" value="bouton radio" />
    Tuile canal</label>


    <label>
    <input type="radio" name="toiture" value="bouton radio" id="toiture_1" />
    Tuile mécanique</label>


    <label>
    <input name="toiture" type="radio" id="toiture_2" value="bouton radio" checked="checked" />
    Tuile plate</label>


    <label>
    <input type="radio" name="toiture" value="bouton radio" id="toiture_3" />
    Ardoise</label>


    <label>
    <input type="radio" name="toiture" value="bouton radio" id="toiture_4" />
    Bac acier</label>


    <label>
    <input type="radio" name="toiture" value="bouton radio" id="toiture_5" />
    Fibrociment</label>


    <label>
    <input type="radio" name="toiture" value="bouton radio" id="toiture_6" />
    Autres</label>


    </p>
    <p>Implantation des modules :
    <label>
    <input type="radio" name="implantation" value="bouton radio" id="implantation_0" />
    intégration en toiture</label>


    <label>
    <input type="radio" name="implantation" value="bouton radio" id="implantation_1" />
    autre</label>
    </p>
    <p>photo de votre bâtiment en jpeg

    </p>
    <p>
    <input type="file" name="fichier" id="fichier" eform="fichier::1:"/>


    </p>
    <p>Informations sur l’onduleur (optionnel)</p>
    <p>Décrire l’emplacement de l’onduleur :
    <input type="text" name="placeonduleur" id="placeonduleur" eform="placeonduleur::1:"/>
    </p>
    <p>distance modules/onduleur :
    <input type="text" name="dist-module-onduleur" id="dist-module-onduleur" eform="dist-module-onduleur::1:"/>


    </p>
    <p>distance onduleur/disjoncteur EDF :
    <input type="text" name="dist-onduleur-edf" id="dist-onduleur-edf" eform="dist-onduleur-edf::1:"/>
    </p>
    <p>Emplacement compteur EDF :
    <input type="text" name="compteur-edf" id="compteur-edf" eform="compteur-edf::1:"/>
    (limite de propriété, intérieur...)</p>
    <p>Divers</p>
    <p>Ombrage : il est très pénalisant en photovoltaïque, décrivez brièvement les obstacles pouvant créer de l’ombre :</p>
    <p>
    <input type="text" name="ombrage" id="ombrage" eform="ombrage::1:"/>


    </p>
    <p>
    <label>
    <input type="checkbox" name="travaux_" value="case à cocher" id="travaux_3" />
    passage de câbles à travers un mur</label>


    <label>
    <input type="checkbox" name="travaux_" value="case à cocher" id="travaux_4" />
    passage de câbles à travers un plancher</label>


    <label>
    <input type="checkbox" name="travaux_" value="case à cocher" id="travaux_5" />
    travaux de génie civil (tranchées)</label>


    </p>
    <p>

    <img src="[+verimageurl+]" alt="verification code" border="1"/>
    <label accesskey="c" for="vericode">code</label>
    <input type="text" name="vericode" size="20" />
    </p>
    <p><input type="submit" name="contact" id="cfContact" class="button" value="Envoyer" /></p>

    <input type="hidden" name="subject" id="cfsubject" eform="subject objet::1:"/>
    </form>

    </body>
    </html>
    [/tt]


    Merci d’avance

    Amigafreak
      desktop publishing & web design

      Evo and Revo user
      • 34001
      • 428 Posts
      Bonjour Amigafreak,

      Pas trop le temps de toute détailler, mais voici quelques exemples de code:

      Pour une liste déroulante:
      <label for="ListeTest">Liste de test</label>
      <select name="ListeTest" id="ListeTest" eform="Liste de test::1:Veuillez sélectionner un élément dans la liste.:#LIST Choix n°1,Choix n°2,Choix n°3">
          <option value=" "></option>
          <option value="Choix n°1">Choix n°1</option>
          <option value="Choix n°2">Choix n°2</option>
          <option value="Choix n°3">Choix n°3</option>
      </select>
      


      Pour des boutons radios:
      <input type="radio" name="RadioTest" id="ChoixOui" value="Oui" eform="Veuillez répondre à la question::1" /><label for="ChoixOui">Oui</label>
      <input type="radio" name="RadioTest" id="ChoixNon" value="Non"  /><label for="ChoixNon">Non</label>
      


      Pour un fichier à envoyer:
      <label for="photo">Joindre la photo</label>   
      <input name="photo" id="photo" class="text" type="file" eform="Photo:file:1" />
      


      Sinon, n’hésite pas à consulter la documentation d’eForm. Elle se trouve dans le répertoire du snippet (assets/snippets/eform/docs). Tu y trouveras pas mal d’exemples de codes...

      Bon courage... wink
        Intégrateur web freelance
        • 1362
        • 94 Posts
        Salut Fairytree !

        Merci pour ces infos, je vais y jeter un oeil !

        entre temps, j’ai continué mes tests et tout fonctionne !
        je me suis un peu baladé dans les forums modx...

        pour pouvoir envoyer l’image à partir du formulaire, j’ai rajouté [tt]enctype="multipart/form-data"[/tt] dans la balise form

        et réussi à gérer les groupes de boutons radios, un seul [tt]eform[/tt] suffit pour chaque groupe

        par contre j’ai aussi 3 cases à cocher,et là j’ai dû créer trois [tt]eform[/tt], c’est normal ? mais ça fonctionne aussi

        je vais m’imprimer la doc d’eform, j’aime bien lire sur du vrai papier grin et ça permet d’y rajouter des notes !

        A très bientôt sur Nantes wink

        Amigafreak

          desktop publishing & web design

          Evo and Revo user
          • 34001
          • 428 Posts
          Quote from: amigafreak at Jul 13, 2010, 09:23 AM

          pour pouvoir envoyer l’image à partir du formulaire, j’ai rajouté [tt]enctype="multipart/form-data"[/tt] dans la balise form
          Effectivement, c’est indispensable. Sans ça, le fichier ne sera pas envoyé.

          Quote from: amigafreak at Jul 13, 2010, 09:23 AM

          et réussi à gérer les groupes de boutons radios, un seul eform suffit pour chaque groupe
          par contre j’ai aussi 3 cases à cocher,et là j’ai dû créer trois eform, c’est normal ? mais ça fonctionne aussi
          Si l’attribut name est identique sur les différents balises input, en théorie un seul attribut eform doit suffire...

          Quote from: amigafreak at Jul 13, 2010, 09:23 AM

          A très bientôt sur Nantes
          Ce sera avec plaisir. wink
            Intégrateur web freelance
            • 1362
            • 94 Posts
            Re-salut !

            je vais revoir pour les cases à cocher, si on peut gagner un peu de code à taper, c’est toujours ça !
            Ca servira pour les prochains sites...

            A plus

            Amigafreak smiley
              desktop publishing & web design

              Evo and Revo user