javascript - HTML 表单到 Google 电子表格
问题描述
我正在处理将数据提交到 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>");
推荐阅读
- php - 如何通过递归找到正确的价格?
- python - Python将String和Bool的字符串转换为List
- r - if_else 跨 R 中的多个列
- django - 如何使用已经具有迁移文件的旧 django 代码设置新的 ubuntu 服务器?
- google-cloud-platform - 在 Google Cloud 中,如果写入并行进行,计划快照是否会对(实例磁盘/快照磁盘)产生任何影响?
- python - 如何从抓取中排除具有特定标签的标签作为孩子
- java - Java NIO:每次写入 SocketChannel 时创建 ByteBuffer 时分配或 allocateDirect
- google-sheets - Google 表格中的异常查询
- python - 将系列中的最后一个值投影到 Python 中的未来单元格
- python - 如何解决“No module named 'frontend'”错误消息?