我正在寻找一种方法来发送URL参数到谷歌表,只要页面加载,
如果我有一个像https://example.com/test?param1=value¶m2=another这样的URL
我怎样才能得到数据“值”和“另一个”添加到谷歌工作表加载?
我目前正在使用GitHub上发布的Form to Google Sheets Demo:
https://github.com/jamiewilson/form-to-google-sheets
我目前的代码是预填充的文本输入,但它需要用户按下提交,而不是我希望它都发生,而不需要任何行动的用户。
我该怎么做
我已经探索了许多在页面加载时自动提交表单的方法,但没有一种有效。
然而,这是最好的道路吗?
下面是我的代码,减去CSS。
我的HTML
<form name="submit-to-google-sheet">
<input type="text" id="inputBoxParam1" name="Param1" placeholder="Param1"/>
<br><br>
<input type="text" id="inputBoxParam2" name="Param2" placeholder="Param2" />
<br><br>
<button type="submit">Confirm Details</button>
</form>
我的JavaScript
<script type="text/javascript">
// Prefill the input boxes from parameter values
function getURLParameter(e) {
return decodeURI((new RegExp(e + "=(.+?)(&|$)").exec(location.search) || [, ""])[1]);
}
if (getURLParameter("Param1").includes("@")) {
document.getElementById("inputBoxParam1").value = getURLParameter("Param1");
}
else {
console.log("No Param1 parameter found.");
}
if (getURLParameter("Param2")) {
document.getElementById("inputBoxParam2").value = getURLParameter("Param2");
}
else {
console.log("No Param2 parameter found.");
}
// Code From GitHub
const scriptURL = 'https://script.google.com/macros/s/examplescript'
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))
})
</script>
我只是一个17岁的初学者,所以任何帮助将不胜感激:)
1条答案
按热度按时间wdebmtf21#
我相信你的目标如下。
修改要点:
value
和another
的查询参数作为键param1
和param2
发送,则需要将https://example.com/test?param1=value¶m2=another
修改为https://example.com/test?param1=value¶m2=another
。而且,在您的javascript中,似乎需要param1
才能包含@
。但是,在您的查询参数中,param1
是value
。请小心点。submit
按钮。为了使用查询参数自动提交值,不需要使用按钮。修改脚本:
请将您的Web Apps URL设置为
scriptURL
。在此修改中,删除了按钮。HTML和Javascript端:
Google Apps脚本端:
在本例中,它假设GoogleApps Script项目是GoogleSpreadsheet的容器绑定脚本。请小心点。如果您的Google Apps Script项目是独立类型,请将
getActiveSpreadsheet()
修改为openById("###spreadsheetId###")
。测试:
在这种情况下,请访问您的HTML URL,如
https://example.com/test?param1=value@value¶m2=another
。这样,value@value
和another
的值被附加到电子表格。注意:
*当您修改Web Apps的Google Apps脚本时,请将部署修改为新版本。这样,修改后的脚本将反映在Web Apps中。请注意这一点