如何通过谷歌应用程序脚本中的多选来制作搜索引擎

时间:2018-04-18 14:41:18

标签: javascript google-apps-script

我想问一下如何通过多个选择制作搜索引擎的问题?例如,我想获得我在多选中选择的所有数据,并将显示在表格上。我不能使select数组的值。所以它似乎是getArray.length is getting error。代码就像非常基本但我似乎无法做到。

这是我的link,因此您可能会看到整个代码。

Code.gs

function doGet(e) {
  //Logger.log( Utilities.jsonStringify(e) );
  Logger.log(e.parameter.page);
  var pgToLoad = e.parameter.page;

  if (!e.parameter.page) {
    Logger.log('!e.parameter.page')
    // When no specific page requested, return "home page"
    return HtmlService.createTemplateFromFile('index').evaluate()
       .setSandboxMode(HtmlService.SandboxMode.IFRAME);
  }
  Logger.log('there is something for the page');
  // else, use page parameter to pick an html file from the script
  return HtmlService.createTemplateFromFile(pgToLoad).evaluate()
    .setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

function getData() {
   var datas =  JSON.stringify(SpreadsheetApp.openById('1nPKnywRqudYckeY0qXR7ag3VVY3cmf56bY9VaTD6FQY')// dbList of VL records
  .getSheetByName('DUMP')
  .getDataRange()
  .getValues());

  var email = Session.getActiveUser().getEmail();
  return {email: email, datas: datas};
}

的index.html

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
<script src="https://cdn.rawgit.com/harvesthq/chosen/gh-pages/chosen.jquery.min.js"></script>
<link href="https://cdn.rawgit.com/harvesthq/chosen/gh-pages/chosen.min.css" rel="stylesheet"/>
  </head>
  <body>
      <select data-placeholder="Choose Username" multiple class="chosen-select" name="selectUsername" id="selectUsername" onchange='a()'>
        <option value=""></option>
        <option value='"user1"'>user1</option>
        <option value='"user2"'>user2</option>
        <option value='"user3"'>user3</option>
        <option value='"user4"'>user4</option>
        <option value="user5">user5</option>
      </select>
      <input type="hidden" name="getSelectUsernameValue" id="getSelectUsernameValue">
      <input type="button" onclick="google.script.run.withSuccessHandler(myFunction).getData()" value="Submit">

<div class="bs-example">
    <table id="tableMyData" class="table">
        <thead>
          <th>Timpstamp</th>
          <th>ID</th>
          <th>Username</th>
          <th>Email</th>
          <th>Address</th>
          <th>Status</th>
        </thead>
        <tbody>
        </tbody>
     </table>
</div>
<script>
$(".chosen-select").chosen({
  no_results_text: "Oops, nothing found!"
});

  function myFunction(myObj){
  var datas = myObj.datas;
  var data = JSON.parse(datas);
  $('#tableMyData tbody').remove();
  var table = $('#tableMyData');

  var getArray = $('#selectUsername').val();

  var index;
  for (index = 0; index < getArray.length; index++) {
      for(var i = 1; i<data.length; i++){
        var getTimestamp = data[i][0];
        var getID = data[i][1];
        var getUsername = data[i][2];
        var getEmail = data[i][3];
        var getAddress = data[i][4];
        var getStatus  = data[i][5];
        if(getArray[index] == getUsername){
          table.append('<tr>'+
              '<td>'+getTimestamp+'</td>'+
              '<td>'+getID+'</td>'+
              '<td>'+getUsername+'</td>'+
              '<td>'+getEmail+'</td>'+
              '<td>'+getAddress+'</td>'+
              '<td>'+getStatus+'</td>'+
              '</tr>');
        }
      }
  }
}
</script>

1 个答案:

答案 0 :(得分:0)

我发现了问题。 我将getArray指定为new Array(),以便该变量为数组。

var getArray = new Array();
getArray = $('#selectUsername').val();