У меня есть форма 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>';
?>
В чем моя ошибка? Большое спасибо заранее.
Pd: этот вопрос почти тот же , который я сделал недавно, но, кажется, он умер с парой ответов, но без решения. Может быть, я не был ясен сам. В любом случае, большое спасибо за эту помощь.