Как вызвать somename.html из метода в файле .gs, передав параметр? - PullRequest
1 голос
/ 26 сентября 2019

Я создаю веб-приложение, в котором оно проходит некоторую проверку перед тем, как успешно загрузить «searchByDocumentPage.html» путем передачи параметра.

В моем предыдущем коде я вызывал метод doGet()непосредственно с помощью ScriptApp.getService().getUrl(), поэтому другие кнопки не имеют проблем при загрузке новой HTML-страницы.

Так как я выполняю некоторую проверку, по какой-то причине я не могу загрузить HTML-страницу searchByDocumentPage.html.

1-й Я пытался:

var html = ScriptApp.getService().getUrl()+"?v=submitDocumentID";
return html;

2-й:

return HtmlService.createTemplateFromFile("searchByDocumentPage").evaluate();
if(fileID === ""){
  document.getElementById("errorMessageDiv").innerHTML='<label style="color:red;text-align:center;font-style: italic;font-size: 12px;">Please key in the Document ID</label>';
}
else{
  google.script.run.withSuccessHandler(fnFileID).getFiles(fileID);
}

function fnFileID(returnedVal){
  if(returnedVal === "No File"){
    document.getElementById("errorMessageDiv").innerHTML='<label style="color:red;text-align:center;font-style: italic;font-size: 12px;">This Document ID do not exist</label>';
  }
  /*else{
    ScriptApp.getService().getUrl()+"?v=submitDocumentID";
  }*/
}
function getFiles(fileID) {
  var returnValue = "";
  var arrayTblFile = [];
  var selectStatementTblFile = "SELECT File_ID FROM webapp_tblFile WHERE File_ID='" + fileID  +"'";
  arrayTblFile= MySQLSelectQuery(selectStatementTblFile);//Call the SQL 
}

function from MySQLConnection.gs
  if(arrayTblFile.length == 0){
    returnValue = "No File";
  }
  else{    
    loadSearchByDocPage(fileID);
  }
  return returnValue;
}

function loadSearchByDocPage(fileID){
  return HtmlService.createTemplateFromFile("searchByDocumentPage").evaluate();

  //var html = ScriptApp.getService().getUrl()+"?v=submitDocumentID";
  //return html;
}

function doGet(e){
  var params = e.parameter;
  if(params.v === 'newDoc'){
    return HtmlService.createHtmlOutputFromFile("newDocumentPage");
  }
  else if(params.v === 'submitDocumentID'){
    return HtmlService.createTemplateFromFile("searchByDocumentPage").evaluate();
  }
  else{
    return HtmlService.createTemplateFromFile("landingPage").evaluate();
  }
}

Ожидается загрузка «searchByDocumentPage.html» путем передачи параметра.

1 Ответ

0 голосов
/ 27 сентября 2019

Я не уверен, что это лучшая практика, я сделал следующее и сумел получить то, что хотел увидеть.

  1. Добавить с гиперссылкой и включил параметр в ссылку
  2. Активировать гиперссылку
  3. doGet () сработал, и страница успешно загрузилась с параметром

function fnFileID(returnedVal){
   $("#btnSubmit_DocumentID").append(
        '<a id="loadSearchByDoc" href="<?= ScriptApp.getService().getUrl(); ?>?v=submitDocumentID&fileID=' + returnedVal + '"></a>'
    );
   document.getElementById('loadSearchByDoc').click(); 
}
`function doGet(e){
  if(params.v === 'submitDocumentID'){
   return HtmlService.createTemplateFromFile("searchByDocumentPage").evaluate();

   }
 }
 `
...