Topics

Mise en place d'un écran de confirmation pour la personnalisation de Google Forms

  • column

dernière fois"Pièges à éviter lors de la création de formulaires clients avec Google FormsJ'ai écrit un article résumant les points que j'ai rencontrés lors de la création d'un formulaire de demande de renseignements à l'aide de la personnalisation HTML dans Google Forms, et cette fois-ci, je vais vous présenter comment créer un écran de confirmation.

Dans le cas précédent,

Écran de saisie → Écran de confirmation d'envoi → Envoi automatique de l'e-mail de confirmation

Voici comment cela s'est passé.

Cette fois,

Écran de saisie → Écran de confirmation de saisie → Écran de fin d'envoi → Courriel de confirmation d'envoi automatique

Voici un résumé de la mise en œuvre de l'écran de confirmation.

Conclusion : Il est impossible d’insérer une page de confirmation uniquement avec Google Forms.

Google Forms ne vous permet pas de contrôler librement le traitement ou la transition du contenu soumis à l'aide de JavaScript (pour des raisons de sécurité, le contenu du formulaire n'est pas accessible via JavaScript).

Google Forms est

  • Il n'est pas possible de concevoir un écran intermédiaire (pour confirmation) avant l'envoi.
  • Il n'est pas non plus possible d'envoyer les données que vous saisissez à d'autres pages ni de les insérer dans du code HTML.

Donc, "Formulaire HTML original + application web GAS" est requis.

Application Web GASJ'ai opté pour HTML et GAS mais une Google Forms. Je souhaitais créer un formulaire de demande de renseignements avec Google Forms 3, j'ai donc fait appel à Gemini.

Est-il possible de transmettre les données saisies sur une page statique (index.html) à la page de confirmation (confirm.html) puis de lier les données de cette page à un formulaire Google avec

?

C'est une idée astucieuse, mais malheureusement, cette approche est en principe quasiment impossible. Si vous souhaitez vraiment l'utiliser : 1. index.html → Enregistrez les valeurs saisies dans le formulaire dans sessionStorage à l'aide de JavaScript. 2. confirm.html lit et affiche les valeurs stockées dans sessionStorage. 3. La balise envoie une requête POST à ​​la réponse de Google Forms (personnalisable avec entry.xxxxx). Attention : cette méthode de réponse n'est pas officielle et présente l'inconvénient de ne pas fonctionner pour les utilisateurs ayant désactivé JavaScript.

De plus, implémenté avec JavaScript !

Voyons maintenant comment l'implémenter en utilisant JavaScript.

index.html: Créer une page de saisie

Commencez par créer un formulaire de demande sur la page de saisie. Vous pouvez utiliser Google Forms.entry.xxxxNe saisissez aucune valeur.

<form id="form">
  <input type="text" name="category" placeholder="お問い合わせ種類">
  <input type="text" name="name" placeholder="お名前">
  <input type="email" name="email" placeholder="メールアドレス">
  <button type="submit">確認</button>
</form>

<script>
  document.getElementById('form').addEventListener('submit', function (e) {
    e.preventDefault();
    const formData = new FormData(e.target);
    for (const [key, value] of formData.entries()) {
      sessionStorage.setItem(key, value); // sessionStorage に保存
    }
    window.location.href = '/inquiry/confirm.html';
  });
</script>

Lorsque l'utilisateur appuie sur le bouton de confirmation, la valeur saisie dans le formulaire est enregistrée dans sessionStorage à l'aide de JavaScript, et la page de confirmation s'affiche./inquiry/confirm.htmlVous serez redirigé vers.

confirm.html: Créer une page de confirmation

La valeur stockée dans sessionStorageclass=”confirmBlock”Versez dans.

Et dans le formulaire juste en dessous, saisissez GoogleFormentry.xxxxxVeuillez saisir la valeur.

<div class="confirmBlock">
  <p>お問い合わせ種類: <span id="category"></span></p>
  <p>お名前: <span id="name"></span></p>
  <p>メールアドレス: <span id="email"></span></p>
</div>

<form action="<https://docs.google.com/forms/d/e/1FAIpQLSc-.../formResponse>"
      method="POST" target="hidden_iframe" onsubmit="submitted = true;">
  <input type="hidden" name="entry.1234567890" id="categoryInput">
  <input type="hidden" name="entry.2345678901" id="nameInput">
  <input type="hidden" name="entry.3456789012" id="emailInput">
  <button type="submit">送信</button>
</form>

<iframe name="hidden_iframe" style="display:none;" onload="if(submitted) window.location='/inquiry/complete.html';"></iframe>

<script>
  // 表示とフォームへの挿入
  ['category', 'name', 'email'].forEach(key => {
    const value = sessionStorage.getItem(key);
    document.getElementById(key).textContent = value;
    document.getElementById(key + 'Input').value = value;
  });

  let submitted = false;
</script>

Pourquoi placer un formulaire de saisie ici alors qu'il s'agit d'une page de confirmation ?

C'est un formulaire Google.formResponseParce que ça fonctionne sous cette forme !

type="hidden"Le formulaire lui-même sera caché.

Voici l'écran de confirmation.

type="hidden"Si vous le supprimez, votre formulaire Google personnalisé sera caché ici !

Lorsque le bouton d'envoi est enfoncé

<iframe name="hidden_iframe" style="display:none;" onload="if(submitted) window.location='/inquiry/complete.html';"></iframe>

Page de confirmation de soumissioncomplete.htmlIl suffit de vous déplacer et c'est parti !

En tant que fluxindex.htmlLa valeur saisie dansconfirm.htmlIl transmet les données au formulaire Google et les envoie.

Comme il s'agit d'un formulaire Google personnalisé, vous pouvez également utiliser des feuilles de calcul récapitulatives et envoyer des e-mails de réponse automatiques via GAS.

résumé

Un écran de confirmation difficile à mettre en place avec Google Forms peut être implémenté de manière flexible grâce à JavaScript. (Attention toutefois, le code source est entièrement visible.)

Un peu de personnalisation peut grandement améliorer l'apparence et la facilité d'utilisation, alors pourquoi ne pas essayer ?

Écrit par

Je fais du développement front-end avec JavaScript, React et Next.js, en me concentrant sur le balisage. Je suis ravi lorsqu'un site sur lequel j'ai travaillé est publié avec succès ! Mon passe-temps est la guitare. J'aime autant écrire que jouer du code !

Hiratchi

Développeur front-end / Arrivé en 2022

Consultez l'article de ce membre du personnel

Nous sommes fiers de la fiabilité de notre équipe et de notre réactivité.

Chez Liberogic, notre personnel expérimenté fait avancer les projets de manière proactive, ce qui explique pourquoi nous sommes très appréciés de nos clients.
Nous veillons à ce que les chefs de projet et les directeurs soient correctement désignés afin de garantir le bon déroulement de l'ensemble du projet. Nous prévenons les dépassements de coûts liés aux engagements initiaux et allouons les ressources aux personnes compétentes aux postes appropriés. Notre capacité à appréhender rapidement les enjeux du projet, à établir et à soumettre des devis est reconnue.

Veuillez noter que nous ne participons pas activement à des travaux sur site de type SES.

Nous prenons en charge la quasi-totalité des principaux outils de gestion de projet et de messagerie instantanée, notamment Slack, Teams, Redmine, Backlog, Asana, Jira, Notion, Google Workspace, Zoom et Webex.

Veuillez nous contacter pour toute question relative au site web.

Étude de cas