如何使用 Apps 脚本使用预设选项填充 HTML Table 列之一?

How to populate one of the HTML Table columns with pre-set options using Apps Script?

我试图让这个 table 显示每个 table 行的选项,但我不太明白:

我想我会在 seconf for loop 中设置它,但我是 html 的新手,无法继续。

<script>
    //PREVENT FORMS FROM SUBMITTING / PREVENT DEFAULT BEHAVIOUR
          function preventFormSubmit() {
            var forms = document.querySelectorAll('form');
            for (var i = 0; i < forms.length; i++) {
              forms[i].addEventListener('submit', function(event) {
              event.preventDefault();
              });
            }
          }
          window.addEventListener("load", preventFormSubmit, true); 
              
           
          //HANDLE FORM SUBMISSION
          function handleFormSubmit(formObject) {
            google.script.run.withSuccessHandler(createTable).processForm(formObject);
            //document.getElementById("search-form").reset();
          }
         
          //CREATE THE DATA TABLE
          function createTable(dataArray) {
            if(dataArray && dataArray !== undefined && dataArray.length != 0){
              var result = "<table class='table table-sm table-striped' id='dtable' style='font-size:0.8em'>"+
                           "<thead style='white-space: nowrap'>"+
                             "<tr>"+                               //Change table headings to match witht he Google Sheet
                              "<th scope='col'>Client</th>"+
                              "<th scope='col'>Name</th>"+
                              "<th scope='col'>Date</th>"+
                              "<th scope='col'>Approval</th>"+
                            "</tr>"+
                          "</thead>";
              for(var i=0; i<dataArray.length; i++) {
                  result += "<tr>";
                  for(var j=0; j<dataArray[i].length; j++){
                      result += "<td>"+dataArray[i][j]+"</td>";
                  }
                  result += "</tr>";
              }
              result += "</table>";
              var div = document.getElementById('search-results');
              div.innerHTML = result;
            }else{
              var div = document.getElementById('search-results');
              //div.empty()
              div.innerHTML = "Data not found!";
            }
          }
  </script>

This is the file's

This is the Web App URL

这是当前结果:

我相信你的目标如下。

  • 您想将下拉列表放在“批准”列中。

这样的话,下面的修改怎么样?

修改后的脚本:

请修改函数createTable如下。

function createTable(dataArray) {
  if (dataArray && dataArray !== undefined && dataArray.length != 0) {
    var option = "<select name='D1'>" +
      "<option value='volvo'>Volvo</option>" +
      "<option value='saab'>Saab</option>" +
      "<option value='mercedes'>Mercedes</option>" +
      "<option value='audi'>Audi</option>" +
      "</select>";
    var result = "<table class='table table-sm table-striped' id='dtable' style='font-size:0.8em'>" +
      "<thead style='white-space: nowrap'>" +
      "<tr>" +                               //Change table headings to match witht he Google Sheet
      "<th scope='col'>Client</th>" +
      "<th scope='col'>Name</th>" +
      "<th scope='col'>Date</th>" +
      "<th scope='col'>Approval</th>" +
      "<td>" +
      "</td>" +
      "</tr>" +
      "</thead>";
    for (var i = 0; i < dataArray.length; i++) {
      result += "<tr>";
      for (var j = 0; j < dataArray[i].length; j++) {
        result += "<td>" + dataArray[i][j] + "</td>";
      }
      result += "<td>" + option + "</td>";
      result += "</tr>";
    }
    result += "</table>";
    var div = document.getElementById('search-results');
    div.innerHTML = result;
  } else {
    var div = document.getElementById('search-results');
    //div.empty()
    div.innerHTML = "Data not found!";
  }
}
  • option 来自您之前的问题。