首页 > 解决方案 > HTML 表单、Google 电子表格和 PHP 确认页面冲突

问题描述

我有 HTML 表单、Google 电子表格和 PHP 确认页面。表单将数据发送到工作表,并在“提交”后返回一个确认页面,该页面重现用户提供的信息。这两个步骤单独工作都很好,但我不能让它们一起工作。这是表单的 HTML 代码:

<form name="submit-to-google-sheet" action="conf.php" method="post">
<input name="email" type="email" placeholder="Email" required><br>
<input name="name" type="text" placeholder="name"><br>
<input name="apple" type="checkbox" value="Yes"> Manzana<br>
<input name="orange" type="checkbox" value="Yes"> Naranja<br>
<input name="banana" type="checkbox" value="Yes"> Banana<br>
<button type="submit">Enviar</button>
<p id="response_message"></p>
</form>

这是证明将数据正确发送到工作表的脚本。它也会触发确认页面,尽管它留给提供数据的空间是空白的:

      const scriptURL = 'https://script.google.com/macros/s/AKfycbxJ9yXSrqqJCy82PV2eaIuNdfoLRWiayrBG1MT96n_av991Fuk/exec'
      const form = document.forms['submit-to-google-sheet']

      form.addEventListener('submit', e => { 
            e.preventDefault()
            fetch(scriptURL, {
                method: 'POST',
                body: new FormData(form)
              })
              .then(response => {
                  console.log('Success!', response );
                  window.location.href = "conf.php";
                }
              )
              .catch(error => console.error('Error!', error.message))
                      })

但是,如果我window.location.href = "conf.php";进入function () {window.location.href = "conf.php";}确认页面,预期信息是正确的,但表格不会填充电子表格。我可以多行设置这个功能,效果是一样的。

这是确认页面的相关代码,顺便说一句:

<?php
    setlocale(LC_TIME,"es_ES.utf-8");
    echo 'Name: ' . $_POST ["name"] . '<br>';
    echo 'E-mail: ' . $_POST ["email"] . '<br><br>';
    echo 'You chose:' . '<br>';
    echo 'Apple: ' . $_POST ["apple"] . '<br>';
    echo 'Orange: ' . $_POST ["orange"] . '<br>';
    echo 'Banana: ' . $_POST ["banana"] . '<br>';
    echo strftime("Submition date: %A %e de %B de %Y a %H:%M") . '<br>';
    ?>

我的错误是什么?非常感谢 mucn。

Pd:这个问题与我最近提出的几乎相同,但似乎已经死了几个答案但没有解决方案。也许我自己也不清楚。无论如何,非常感谢您的帮助。

标签: phphtmlforms

解决方案


推荐阅读