HTML форма в таблицу Google - PullRequest
0 голосов
/ 25 февраля 2020

Я работаю над формой HTML, которая отправляет данные в электронную таблицу Google. Этот урок показал мне хитрость и отлично работает для меня, хотя он не включает страницу подтверждения, возвращающую пользователю информацию, которую он / он предоставил. Каким-то образом я нашел способ, но не могу сделать так, чтобы страница подтверждения включала информацию, предоставленную пользователем.

Я нашел несколько вопросов, близких к этому, но большинство из них получают подтверждение, решенное с помощью внутреннего HTML (небольшой текст добавляется внизу / вверху формы, а не мое намерение) и / или я не смог заставить их работать.

Вот мой код:

</head>
<body>
    <form name="submit-to-google-sheet">
      <input name="email" type="email" placeholder="Email" required><br>
      <input name="nombre" type="text" placeholder="Nombre"><br>
      <input name="apellido" type="text" placeholder="Apellido"><br>

      <button type="submit">Enviar</button>
    </form>

    <script>
      const scriptURL = 'https://script.google.com/blabla'
      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))
          .catch(error => console.error('Error!', error.message))
        window.location.href = "conf.php";
      })
    </script>
</body>

И страница подтверждения (конф. php):

<head>

</head>
<body>
    <p>Text.</p>
    <?php
    setlocale(LC_TIME,"es_ES");

    echo 'Nombre: ' . $_POST ["nombre"] . '<br>';
    echo 'Apellido: ' . $_POST ["apellido"] . '<br>';
    echo 'E-mail: ' . $_POST ["email"] . '<br><br>';
    echo strftime("Fecha de inscripción: %A %e de %B de %Y a %H:%M") . '<br>';
    ?>
    <button onclick="imprimir()">Imprimir confirmación</button>
    <p>Text.</p>
    <button onclick="volver()">Volver</button>
    <script>
      function imprimir() {
        window.print();
      }
      function volver()     {
        window.location.href = "index.html";
      }
    </script>
</body>

Большое спасибо заранее.

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Синтаксическая ошибка javascript. Следующее не может быть скомпилировано.

function(window.location.href = "confirm.php";)

Пожалуйста, исправьте это.

window.location.href = "confirm.php";

Запрос на отправку был отправлен на https://script.google.com/blabla без сомнения, с данными формы в заголовке. Таким образом, вы можете контролировать этот запрос при подтверждении. php и выводить результат, как показано ниже.

//confirm.php
<?php
//get any kinds of data from https://script.google.com/blabla
...
//response the result
echo("<p>Successfully posted!</p><a onclick='window.location.history.back()'>Go back</a>");
0 голосов
/ 25 февраля 2020

Вы не можете иметь несколько строк в функциях стрелок, не заключая их в фигурные скобки, поэтому вам нужно исправить fetch:

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))

Кроме того, вы, скорее всего, всегда получите ошибку, так как вы отправляем запрос на фальшивую конечную точку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...