実現したいこと
GASにてWebアプリとしてhtmlファイルを作成しました。HTML側から入力した数値をサーバ側に送り、その数値を基にスプレッドシートのデータをフィルターにかけ、結果抽出された情報(1行のみ、計10個程度の情報)を再度HTML側に送信して表示させたいと思っています。
前提
クライアントからサーバーまで数値が送信されていることは確認しています。またサーバー側でその値を基にフィルターをかけていることもできていると思います。
配列に突っ込んでクライアントに送ろうとしていますが、クライアント側の結果がnullです。
該当のソースコード
index.html
1function translateText(){ 2 let element = document.getElementById('call'); 3 console.log(element.value) 4 google.script.run 5 .withSuccessHandler(function(data){ 6 console.log(data); 7 }) 8 .logTest(element.value); 9}
function logTest(data){ const spreadsheet = SpreadsheetApp.openById(["1TNOpj9XkQimCYKgt8Gd5T3elP0mUr4G7IE-XsldwnMc"]) const dataSheet = spreadsheet.getSheetByName("data") let lastRow = dataSheet.getLastRow(); var sh=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // let data = 13; // データ読み込み const dataArray = dataSheet.getRange(1,1,lastRow,11).getValues() // 絞り込み const salesArray = dataArray.filter(record => record[9] == data); let arr = []; for(let i =0; i <11; i++){ arr.push(salesArray[0][i]); } return arr; }
試したこと
この通信中のサーバー側のログが取れないので逐一追えていませんが、クライアント側から13という数値を送り、サーバー側で13を足して返却、クライアント側で26表示、は確認していますので全体の流れはあっているかと思います。
なにが間違いか、どのように修正すべきか教えていただけると助かります。
回答1件
あなたの回答
tips
プレビュー