Форма ответа пуста - PullRequest
       5

Форма ответа пуста

1 голос
/ 03 марта 2020

У меня есть некоторый скрипт Google, который генерирует начальную форму, затем собирает число, выполняет поиск, а затем должен вернуть вторую форму (функция getfamily). Вторая форма, которая генерируется динамически, возвращает пустое значение. Я вижу переменную формы HTML с данными в логгере, но в браузере она пустая. Любые предложения будут оценены.

var ssID="xxx";

var rows = SpreadsheetApp.openById(ssID).getSheetByName("studentinfo").getDataRange().getValues();

function doGet() {
    var html = HtmlService.createTemplateFromFile('index2').evaluate()
    .setTitle('Lookup').setSandboxMode(HtmlService.SandboxMode.NATIVE);   
    return html; 
};

function getfamily(form){
    Logger.log(form.familyid);
    var ssID="xxxx";
    var rows = SpreadsheetApp.openById(ssID).getSheetByName("studentinfo").getDataRange().getValues();
    var formHTML = "<!DOCTYPE html>";
    formHTML +="Hello!";
    formHTML += '<form id="students">';

    var filteredRows = rows.filter(function(row){
        var message="made it";
        if (row[0] === form.familyid) {
            Logger.log(row[2]);
            formHTML+= '<input type="checkbox" name ="students value='+ row[1] + '">'+ row[2] + '<br>';
            return row[2];
        }
    });

    formHTML+='<input type="submit" value="CheckIn">';
    formHTML+='</form>';
    Logger.log(formHTML);
    var output = HtmlService.createHtmlOutput(formHTML).setSandboxMode(HtmlService.SandboxMode.NATIVE);
    return output;
};

1 Ответ

0 голосов
/ 03 марта 2020

Ваша строка ввода type = "checkbox" трудно понять, что вы хотите. Я предполагаю, что вы планируете вставить эту форму в уже существующий DOM, поэтому вам не нужно беспокоиться о других тегах, просто вставьте их в любой подготовленный вами div.

function getfamily(form){
  var ssID="xxxx";
  var rows = SpreadsheetApp.openById(ssID).getSheetByName("studentinfo").getDataRange().getValues();
  var formHTML='<form id="students">';
  var message="made it";
  rows.forEach(function(row){
    if (row[0]==form.familyid) {
      formHTTML=Utilities.formatString('<input type="checkbox" name="students" value="%s" /><br />',row[2]);//I presume that you want to change the name but I cant tell how you planned to do it.
    }
  });
  formHTML+='<input type="button" value="CheckIn" onClick="proceesForm(this.parentNode);" />';
  formHTML+='</form>';
  return HtmlService.createHtmlOutput(formHTML);
};

Вы можете использовать submit, если вы действительно должен, но я считаю, что использование google.script.run намного проще. Нам нужно больше узнать о том, что вы делаете, чтобы дать полный ответ.

...