ID du formulaire

Wix

Intégrez à un site Wix un formulaire HTML qui envoie avec fetch, car Wix exécute le HTML personnalisé dans une frame isolée qui ne peut pas naviguer dans la page.

Wix Forms garde les soumissions dans Wix et n'a aucun réglage pour une URL d'action externe. Pour utiliser Ikiform, placez votre propre formulaire dans un élément Embed HTML. Wix exécute ce code dans une iframe isolée servie depuis un hôte filesusr.com distinct, et tout ce qui suit en découle.

Pourquoi le formulaire envoie avec fetch

  • La frame de Wix autorise les formulaires, les scripts, les popups et l'accès same-origin, mais pas la navigation de premier niveau. target="_top" ne peut pas emmener le visiteur vers une page de remerciement.
  • Un envoi de formulaire classique chargerait le résultat dans la petite frame, et les pages de remerciement, d'erreur et de vérification d'Ikiform refusent de s'afficher dans une frame. Les visiteurs verraient une frame vide ou refusée.
  • Envoyer avec fetch et Accept: application/json garde le visiteur sur place et affiche le résultat dans l'intégration.

Ajoutez l'intégration

  1. Ajoutez un élément Embed HTML

    Dans l'éditeur Wix, ouvrez Add Elements > Embed Code > Embed HTML. Dans Wix Studio, c'est sous Embed & Social. Choisissez Code plutôt que Website address.

  2. Collez le formulaire

    Embed HTML
    <form id="contact" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post" novalidate>
      <label>Email <input name="email" type="email" autocomplete="email" required /></label>
      <p class="error" data-error-for="email"></p>
      <label>Message <textarea name="message" rows="4"></textarea></label>
      <p class="error" data-error-for="message"></p>
      <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden />
      <button>Send</button>
      <p role="status" data-status></p>
    </form>
    
    <script>
      const form = document.querySelector("#contact");
      const button = form.querySelector("button");
      const status = form.querySelector("[data-status]");
    
      form.addEventListener("submit", async (event) => {
        event.preventDefault();
        button.disabled = true;
        status.textContent = "Sending";
        try {
          const response = await fetch(form.action, {
            method: "POST",
            headers: { Accept: "application/json" },
            body: new FormData(form),
          });
          const result = await response.json();
          const fields = result.ok ? {} : result.error.fields ?? {};
          for (const slot of form.querySelectorAll("[data-error-for]")) {
            slot.textContent = fields[slot.dataset.errorFor]?.[0] ?? "";
          }
          status.textContent = result.ok ? "Thanks, we got it." : result.error.message;
          if (result.ok) form.reset();
        } catch {
          status.textContent = "Couldn't reach the server. Try again.";
        } finally {
          button.disabled = false;
        }
      });
    </script>
    
    <style>
      body { margin: 0; font: 15px/1.5 system-ui, sans-serif; }
      form { display: grid; gap: 8px; }
      label { display: grid; gap: 4px; }
      input, textarea, button { font: inherit; padding: 8px 10px; border: 1px solid #d4d4d4; border-radius: 6px; }
      button { background: #111; color: #fff; border: 0; }
      .error { margin: 0; color: #b42318; font-size: 13px; }
    </style>

    La frame n'hérite pas des polices ni des couleurs de votre site, c'est pourquoi le bloc <style> les définit. Adaptez-le à votre site.

  3. Dimensionnez et publiez

    Agrandissez l'élément pour qu'il contienne les erreurs de champ et la ligne de statut, puis publiez. L'éditeur n'affiche qu'un espace réservé pour le code personnalisé : testez donc sur le site publié.

Le réglage Custom Code de Wix, valable pour tout le site, nécessite un plan premium et un domaine connecté, et ajoute du code dans le head ou le body de la page. Il ne peut pas placer un formulaire à un endroit précis de votre mise en page : l'élément Embed HTML reste donc la bonne place pour le formulaire.

Réglages anti-spam

Laissez le contrôle anti-spam du formulaire désactivé. La vérification humaine d'Ikiform a besoin soit de sa page de vérification, soit d'une petite frame ikiform.com, et aucune ne peut s'exécuter dans la sandbox de Wix. Le honeypot et le score de spam restent actifs sur chaque envoi.

Domaines autorisés

Ikiform voit l'hôte de la frame, pas votre domaine Wix, car l'envoi part de l'intérieur de l'iframe. Pour le trouver, ouvrez votre page publiée, inspectez l'intégration et lisez le src de l'iframe.

Où tourne le formulaireÀ ajouter aux domaines autorisés
La frame d'intégrationL'hôte exact du src de l'iframe, comme www-example-com.filesusr.com
Votre domaine Wix ou personnaliséInutile pour l'intégration, puisque l'envoi n'en provient jamais
  • N'ajoutez jamais filesusr.com seul. Tous les sites de cet hébergeur correspondraient, y compris ceux des autres.
  • L'hôte de la frame dérive de l'adresse de votre site, donc il change si vous connectez un nouveau domaine. Vérifiez-le à nouveau après un changement de domaine.

Checklist de test

  1. Publiez et ouvrez la page en ligne dans une fenêtre de navigation privée.
  2. Avec des champs définis, envoyez avec un e-mail vide. Le formulaire a novalidate, donc le message d'Ikiform doit apparaître sous le champ.
  3. Envoyez un vrai message et vérifiez que la ligne de statut affiche « Thanks, we got it. » et que la soumission apparaît dans Ikiform.
  4. Activez les domaines autorisés avec l'hôte de la frame et envoyez à nouveau. La soumission doit toujours arriver parmi les reçues.

Dépannage

Ce que vous voyezPourquoiSolution
L'intégration devient vide ou affiche une page refusée après l'envoiLe script ne s'est pas exécuté, donc le navigateur a envoyé normalement et a tenté de charger la page d'Ikiform dans la frameVérifiez que le script est bien dans l'élément, et que l'id du formulaire est contact.
Les soumissions arrivent dans le spam avec origin_mismatchL'hôte de la frame ne fait pas partie des domaines autorisés, ou vous avez listé votre domaine Wix à la placeAjoutez l'hôte filesusr.com exact du src de l'iframe.
La ligne de statut affiche Complete the human check, then send the form again.Le contrôle anti-spam est réglé sur Ikiform, qui ne peut pas s'exécuter dans la sandboxDésactivez la vérification pour ce formulaire.
La ligne de statut indique qu'il n'a pas pu joindre le serveurUn bloqueur de publicités ou un filtre réseau a bloqué la requête. Certains réseaux bloquent filesusr.com lui-même.Testez sur un autre réseau ou dans une fenêtre de navigation privée sans extension.
Les messages d'erreur sont coupésL'élément est moins haut que le formulaireAgrandissez l'élément dans l'éditeur.