Сервер веб-приложений Google возвращает ноль, хотя logger.log подтверждает их данные - PullRequest
0 голосов
/ 20 ноября 2018

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

    function sendFleet(e){ // This code sends the dropdown value to the server side
  e.preventDefault();
  var fleet = document.getElementById("Fleet").value
  document.getElementById('photostatus').innerHTML = "Waiting For Photo.."
  if(fleet != "Not on this list?"){
  var data1 = {
    FleetNumber: document.getElementById("Fleet").value,
  }
  google.script.run.withSuccessHandler(consoleyay)
  .sendFleet(data1)

  }
  else if(fleet == "Not on this list?"){
  console.log("right area")
  document.getElementById("Rego").innerHTML= "Rego"
  document.getElementById("NOLF").style.display=""
  document.getElementById("NOLR").style.display=""
  document.getElementById("NOLB").style.display=""
  document.getElementById("NOLS").style.display=""
  document.getElementById("Fleet").style.display="none"
  document.getElementById("Rego").style.display="none"    
  }
  }
   function SENDFLEET(e){ // This code sends a user entered value to the server.
  e.preventDefault();
  var fleet = document.getElementById("NOLF").value
  document.getElementById('photostatus').innerHTML = "Waiting For Photo.."
  var data1 = {
    FleetNumber: document.getElementById("NOLF").value,
  }
  google.script.run.withSuccessHandler(consoleyay)
  .sendFleet(data1)
  }   

function sendFleet(data1){
var Fleet = data1.FleetNumber
var FleetListing = SpreadsheetApp.openById("1ufyN6mgzdHXoYbVC6TENcc7V2zGxdQtp0ctaCR-kiEw").getSheetByName("FleetListing")
var data2 = FleetListing.getRange(3,3,FleetListing.getLastRow(),1).getValues().reduce(function (a, b) { //flatten the 2D array obtained by .getValues()
return a.concat(b);
});;
var fleetdata = FleetListing.getRange(3,1,FleetListing.getLastRow(),8).getValues()
var Search1 = data2.indexOf(Fleet)
var site = ""
var type = ""
var fleet = ""
var rego = ""
var insidev = ""
var outsidev = ""
var insideb = ""
var outsideb = ""
var search = ""
Logger.log(Search1)
if(Search1 != "-1"){
Logger.log("shouldn't be here")
site = fleetdata[Search1][0]
type = fleetdata[Search1][1]
fleet = fleetdata[Search1][2]
rego = fleetdata[Search1][3]
insidev = fleetdata[Search1][4]
outsidev = fleetdata[Search1][5]
insideb = fleetdata[Search1][6]
outsideb = fleetdata[Search1][7]
search = Search1
}
else if(Search1 == "-1"){
var MTL = SpreadsheetApp.openById("1ufyN6mgzdHXoYbVC6TENcc7V2zGxdQtp0ctaCR-kiEw").getSheetByName("MasterToLocal")
var data3 = MTL.getRange(1,3,MTL.getLastRow(),1).getValues().reduce(function (c, d) { //flatten the 2D array obtained by .getValues()
return c.concat(d);
});; 
var fleetdata1 = MTL.getRange(1,1,MTL.getLastRow(),8).getValues()
var Search2 = data3.indexOf(Fleet)
Logger.log("lukes okay")
Logger.log(Fleet)
Logger.log(Search2)
Logger.log(data3)
if(Search2 != "-1"){
  Logger.log("Test start")
  site = fleetdata1[Search2][0]
  Logger.log(site)
  type = fleetdata1[Search2][1]

  fleet = fleetdata1[Search2][2]

  rego = fleetdata1[Search2][3]

  insidev = fleetdata1[Search2][4]

  outsidev = fleetdata1[Search2][5]

  insideb = fleetdata1[Search2][6]

  outsideb = fleetdata1[Search2][7]
  search = Search2
  Logger.log("Test Finish")
  }
}
return [site,type,fleet,rego,insidev,outsidev,insideb,outsideb,search]
}

function consoleyay(details){ // this is the code that handles the response from the server.
console.log(details)
var site = document.getElementById("Site").value
console.log(site)
console.log("issues 1")
var Type = document.getElementById("Type").value
console.log("issue 2")
var fleet = details[2]
var rego = details[3]
var inv = details[4]
var outv = details[5]
console.log("before bg")
var inb = details[6]
var outb = details[7]
console.log("after BG")
var Search1 = details[8]

1 Ответ

0 голосов
/ 20 ноября 2018

Решил проблему.Вместо использования .getValue я использовал .getDisplayValue, который будет возвращать дату в виде строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...