Formulaires personnalisés

2006-04-04 #qc

Il est possible d'utiliser une boite HtmlFile pour réaliser un formulaire personnalisé dont le résultat sera envoyé par mél à une adresse donnée.

Il faut ensuite coder un formulaire en html en s'inspirant du modèle ci-dessous :

<script type="text/javascript">
function MailFormSubmit() {
  // liste des id obligatoires
  var checks = new Array("mf_Societe", "mf_Email");
  // teste la saisie des champs obligatoires
  for (var i = 0; i < checks.length; i++) {
    var check = checks[i];
    var ctrl = document.getElementById(check);
    if (ctrl.value == "") {
      ctrl.focus();
      return;
    }
  }
  // saisie ok => poste vers le gestion de formulaires mails
  var mainForm = document.getElementById("dotnetForm");
  mainForm.action = '/qc/MailFormHandler.ashx';
  mainForm.submit();
}
</script>
<table id="WebForm">
  <tbody>
    </tr>
      <td colspan="2">
        L'astérisque (*) signale un champ obligatoire
      </td>
    <tr>
    <tr>
      <td>Nom</td>
      <td><input maxlength="100" size="50" name="Nom" /> </td>
    </tr>
    <tr>
      <td>Prénom</td>
      <td><input maxlength="100" size="50" name="Prenom" /></td>
    </tr>
    <tr>
      <td>Société *</td>
      <td><input maxlength="100" size="50" name="Societe" id="mf_Societe" /></td>
    </tr>
    <tr>
      <td>E-Mail *</td>
      <td><input maxlength="100" size="50" name="Email" id="mf_Email" /></td>
    </tr>
    </tr>
      <td colspan="2">
        Merci de répondre aux questions ci-dessous pour recevoir rapidement une réponse
      </td>
    <tr>
    <tr>
      <td>Souhaitez-vous recevoir notre catalogue ?</td>
      <td><input type="radio" checked="checked" name="Catalogue" value="Oui" />Oui
          <input type="radio" name="Catalogue" value="Non" />Non</td>
    </tr>
    <tr>
      <td>Quel sont vos projets ?</td>
      <td><input type="checkbox" name="Location" value="Oui" />Location<br />
        <input type="checkbox" name="Achat" value="Oui" />Achat<br />
        <input type="checkbox" name="Investissement" value="Oui" />Investissement<br />
    </tr>
    <tr>
      <td>Autres informations ?<br />
        <small>Surface, jardin, garage, prix...</small></td>
      <td><textarea rows="4" cols="40" name="Informations"></textarea></td>
    </tr>
    <tr>
      <td></td>
      <td><input type="button" name="_Envoyer" value="Envoyer" onclick="MailFormSubmit(); " /> 
        <input type="reset" name="_Effacer" value="Effacer" /></td>
    </tr>
    </tbody>
  </table>
<input type="hidden" name="_mailto" value="mailFormTo" />
<input type="hidden" name="_subject" value="Formulaire Web" />

Pour définir l'adresse mél du destinataire, il faut paramétrer le nom de la clé dans le champ caché "_mailto" du formulaire :

<input type="hidden" name="_mailto" value="mailFormTo" />

Puis enregistrer l'adresse mél correspond à cette clé dans le web.config :

<add key="mailFormTo" value="contact@example.com" />

Pour une configuration plus poussée des formulaires personnalisés, il est également possible de définir 2 autres champs cachés :

  • le sujet du mél : <input type="hidden" name="_subject" value="Formulaire contact" />
  • la page où rediriger le visiteur suite à son message : <input type="hidden" name="_redirect" value="~/merci.aspx" />

Le corps du mél reçu se présente sous la forme suivante :

1 - Nom : Dupond
2 - Prenom : Pierre
3 - Societe : Immobil
4 - Email : pierre.dupond@immobil.com
5 - Catalogue : Oui
6 - Location : Oui
7 - Investissement : Oui
8 - Informations : Demande urgente SVP