WebAPP Викторина html - чтение данных из электронной таблицы Google - выбор листа - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь опубликовать небольшое веб-приложение, в котором есть селектор для выбора одного из листов в электронной таблице.

Затем извлеките данные из этого листа, чтобы построить тест.

index.html

<!-- Build select options from spreadsheet sheets -->
<?  var ss = SpreadsheetApp.openById('id_key'); ?>
  <select id="select_sheet" onchange="showQuestion(this.value);">
  <option value="" disabled selected style="display:none;">Choose unit</option>
    <? for (var i = 0; i < ss.getSheets().length; ++i) { ?>
      <option><?!= ss.getSheets()[i].getSheetName() ?></option>
    <? } ?>
  </select>

SCRIPT

<script>       
function showQuestion(name){

  <? var data = SpreadsheetApp.openById('id_key').getSheetByName(name).getDataRange().getValues; ?>    

    document.getElementById("question").innerHTML = <?= data[0][0] ?>;
    document.getElementById("btn0").innerHTML = <?= data[0][1] ?>;
    document.getElementById("btn1").innerHTML = <?= data[0][2] ?>;
    document.getElementById("btn2").innerHTML = <?= data[0][3] ?>;
    document.getElementById("btn3").innerHTML = <?= data[0][4] ?>;
}
</script>

Меню селектора построено правильно, однако мне не удается вызвать функцию onchange, которая может считывать данные с выбранного листа (select_sheet)

Как я мог этого достичь?

1 Ответ

0 голосов
/ 31 октября 2018

В вашем теге option должен быть установлен атрибут value.

Изменение:

<option><?!= ss.getSheets()[i].getSheetName() ?></option>

до:

<option value="<?= ss.getSheets()[i].getSheetName() ?>"><?!= ss.getSheets()[i].getSheetName() ?></option>
...