如何解决Javascript代码逻辑:发送数据然后从Google电子表格中获取数据
我对Java语言还比较陌生,我的第一个项目是一个在线民意测验,该民意测验询问一个问题,将响应存储在Google电子表格中,然后检索所收集的数据以在页面上绘制饼图,从而说明民意调查的结果。我正在使所有工作正常,但我编写的代码不会检索最近保存的民意调查结果。例如,当我第一次使用民意测验时,我会在Google电子表格中看到民意测验结果(对民意测验问题的是/否答案),但是不会将其发送回去创建图表。下次使用轮询时,我看到新的轮询结果已添加到前一个轮询结果中,但是只有先前的轮询结果被发回。换句话说,是/否民意调查结果的集合总是比总数少一,而最新的结果不被发回。我研究了几天的代码,但根本看不到逻辑缺陷。我在下面粘贴了相关代码,希望有人可以发现我的错误。单击页面上的按钮提交是/否响应时,它将运行。在此先感谢您的帮助。顺便说一句...我很确定这个项目将继续使用node.js进行下一个实现,但是我真的很想了解当前代码的问题。
<script>
var yesTotal=0;
var noTotal=0;
var voteArray=[];
var url = 'https://api.sheety.co/<specific URL for spreadsheet data>';
// handle click button
btn.onclick = function () {
const rbs = document.querySelectorAll('input[name="choice"]');
let selectedValue;
for (const rb of rbs) {
if (rb.checked) {
selectedValue = rb.value;
//break;
}
}
var formObject = {"sheet1":
{"question1": selectedValue
}};
sendData();
fetchData();
//Send Selected Value to Sheety
async function sendData(){
await fetch(url,{
method: 'POST',headers: {
'Content-Type': 'application/json'
},body: JSON.stringify(formObject)
})
.then((response) => response.json())
.then(json => {
// Do something with object
//console.log(formObject);
});
};
// Fetch data from spreadsheet
function fetchData(){
fetch(url)
.then((response) => {
return response.json()
})
.then((data) => {
console.log(data);
voteArray=data;
for (var i = 0; i < voteArray.sheet1.length; i++) {
if (voteArray.sheet1[i].question1 == "yes") {
yesTotal = yesTotal+1;
} else {
noTotal = noTotal+1;
}
}
console.log(yesTotal,noTotal);
})
};
</script>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。