javascript - Using Google App Script to get values from sheets and display them in text box -


so, google updated google app script api , added lots of nice features, however, in process, depreciated lots of api. have been working on library database user interface place work on college campus, , when wanted update app new api, lot of things broke, , can't figure out how make them work again.

what trying value google sheets file, , put value in text box on web app. cannot work work. in addition, discovered troublesome, , is, debugger seems not correct. know, bold accusation. let me try show you.

code.gs

  function doget(e) {    var html = htmlservice.createhtmloutputfromfile('index')   .setsandboxmode(htmlservice.sandboxmode.iframe);    return html;  }   function searchbooks(searchitem, searchtype){   var si = searchitem;   logger.log(si);   var st = searchtype;   logger.log(st);   var sheets = spreadsheetapp.getactivespreadsheet().getsheets();   var ss = sheets[0];   var itemdatarange = ss.getrangebyname("iteminformation");   var selecteditem = null; //the item returned   //var selectedsearch = searchitem;   var titles = sheet.getrange("k2:k9507").getvalues(); //get titles of items   var authors = sheet.getrange("j2:j9507").getvalues(); //get authors in sheet   var barcodes = sheet.getrange("b2:b9507").getvalues(); //get barcodes in sheet   var itemsarray = new array();     if (st == '')   {    return null;    }   else if (st.value == 'please select type...')   {     var test = "this works";     logger.log(test);     return selecteditem;   }   else if(st == 'barcode')   {     var selectedbarcode = si;      for(var = 0; < barcodes.length; i++) //search barcode     {       if(barcodes[i] == selectedbarcode)       {         selecteditem = titles[i];         break; //break because barcodes not duplicated       }     }      if(selecteditem != null)     {       return selecteditem;     }     else     {       selecteditem = "no book(s) found";       return selecteditem;     }     return selecteditem;         }      }       ... 

index.html

<script>   function booksearch() {    var searchitem = string(document.getelementbyid('searchitem').value.tolowercase());    var searchtype = string(document.getelementbyid('searchtype').value.tolowercase());    google.script.run.withsuccesshandler(bookfound).searchbooks(searchitem, searchtype);  }  ...  function bookfound(selecteditem) {     document.getelementbyid("bookresultbox").innhtml = selecteditem;    alert(selecteditem); } </script> 

when test code, , put search value category "barcodes" selected, console logs of data being brought function searchbooks, debug console says variables si, st, searchitems, , searchtype undefined.

i've been having trouble trying figure out proper api calls use search through spreadsheet (when dealing stuff getrangebyname). think there might different way since big update. may have had working before changed of code, although started changing lot of when trying figure out why nothing displaying. when saw @ "undefined" debug console logs, scared me bit. can't tell if i'm messing up, or api messing up.

any appreciated in advance :)

there's error in code. it's coming line:

var itemdatarange = ss.getrangebyname("iteminformation"); 

your variable ss not spreadsheet class, it's sheet class. can't rangebyname of sheet class. there no getrangebyname() method of sheet class.

i'd change code this:

var ss = spreadsheetapp.getactivespreadsheet(); var itemdatarange = ss.getrangebyname("iteminformation"); 

if need first sheet:

var thefirstsheet = ss.getsheets()[0]; 

Popular posts from this blog