[英]HTML form to Google spreadsheet
我正在处理将数据提交到 Google 电子表格的 HTML 表单。 本教程向我展示了技巧并且对我来说效果很好,尽管它不包括返回用户她/他提供的信息的确认页面。 不知何故,我找到了一种方法,但我无法使确认页面包含用户提供的信息。
我发现了几个与这个问题接近的问题,但大多数问题都通过 innerHTML(在表单底部/顶部添加的小文本,不是我的意图)和/或我无法让它们工作来解决。
这是我的代码:
</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>
和确认页面(conf.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>
首先十分感谢。
有一个 javascript 语法错误。 以下无法编译。
function(window.location.href = "confirm.php";)
请更正。
window.location.href = "confirm.php";
毫无疑问,帖子请求被发送到https://script.google.com/blabla ,在他的标题中包含表单数据。 所以你可以在confirm.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>");
箭头函数中不能有多行而不用大括号括起来,因此您需要更正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))
此外,您很可能总是会收到错误消息,因为您正在向假端点发送请求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.