从谷歌工作表中读取数据在客户端html

时间:2018-06-16 07:30:32

标签: html google-apps-script google-spreadsheet-api

我已经坚持了几个星期,我认为现在是时候拿到一些学费了。

我的目标是使用GAS构建测验网络应用程序:

  • 我有一个带有问题的谷歌电子表格(让我们称之为DATABASE)
  • 我无法将问题导入到我的客户端(DATABASE)全局可用的变量中。
  • 到目前为止,我对网络应用的逻辑如下 1)从表格中读取数据 2)使用DATA在html中构建QUESTION和CHOICES 3)单击选项按钮并检查其是否正确,然后执行某些操作 4)转到下一个问题 5)理想情况下,问题和选择将被改组。

我尝试过的事情并没有成功做到:

a)使用DATABASE - >的值部署QUESTIONS.html。无法访问html脚本中其他函数的值

b)使用google.script.run(也尝试使用successHandler),无法访问函数外的DATABASE值()

c)使用属性,无法访问客户端属性(DATABASE)的值

欢迎任何想法。

CODE.HTML

<html>
<head>
<title>Quiz</title>
</head>
<body>
   <div id="quiz">
      <p id="question"></p>
         <div class="buttons">
            <button id="btn0"><span id="choice0"></span></button>
            <button id="btn1"><span id="choice1"></span></button>
            <button id="btn2"><span id="choice2"></span></button>
            <button id="btn3"><span id="choice3"></span></button>
         </div>
  </div>

<script>   
  function createQuestions(data){
  //THIS WORKS FINE FOR QUESTION 1
  document.getElementById("question").innerHTML = data[0][0];
  document.getElementById("choice0").innerHTML = data[0][1];
  document.getElementById("choice1").innerHTML = data[0][2];
  document.getElementById("choice2").innerHTML = data[0][3];
  document.getElementById("choice3").innerHTML = data[0][4]; 
 }  
 google.script.run.withSuccessHandler(createQuestions).getData();
 //HOWEVER I DON'T KNOW HOW TO GET FROM HERE TO QUESTION 2
 //I CANNOT CREATE A SECOND FUNCTION BECAUSE THE DATA IS NOT ACCESSIBLE
</script>
</body>
</html>

CODE.GS

function doGet() {
  var html = HtmlService.createTemplateFromFile("index").evaluate();
  html.setTitle("QUIZ APP");

  return html; 
};

function getData(){
  return SpreadsheetApp.openById("SHEET_ID").getSheets()[0].getDataRange().getValues();  
};

0 个答案:

没有答案