首页 > 解决方案 > 如何使用 Apps 脚本通过电子表格数据自动填充 HTML 字段?

问题描述

我想使用电话号码使用电子表格数据填充我的表单字段。如果用户输入他们的电话号码,字段将自动填充(姓名、电子邮件等)

现在,它只填充全名。

我的代码.GS:

function autoComplete(info){
  var opensheet = "https://docs.google.com/spreadsheets/d/xxxxxxxxx/edit#gid=0";
  var sso = SpreadsheetApp.openByUrl(opensheet);
  var wst = sso.getSheetByName("Invoices");

  var data = wst.getRange(2, 1, wst.getLastRow()-1, 5).getValues();

  var phoneSearch = data.map(function(r){ return r[0]; });
  var newsletter = data.map(function(r){ return r[1]; });
  var fullname = data.map(function(r){ return r[2]; });
  var email = data.map(function(r){ return r[4]; });

  var position = phoneSearch.indexOf(info);

  if(position > -1){
    return fullname[position];
  } else {
  return '';
  }
}

我的Javascript:

 function getDetails(){

       var info = document.getElementById("phone_number").value;

       if(info.length === 14) {
       google.script.run.withSuccessHandler(updateInfo).autoComplete(info)

       }

       }

        function updateInfo(fullname){
         document.getElementById("full_name").value = fullname;
       M.updateTextFields();

        }

我想根据电子表格数据自动完成字段。如果用户输入电话号码,则必须自动填写这些字段。

见截图:https ://ibb.co/wJjz205

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


您可以扩展您的脚本以在对象中返回其他值,例如:

    ...
    if(position > -1){
        return {
          'fullname': fullname[position],
          'email': email[position]
          // add other fields if necessary
          }
      } else {
      return '';
      }
      ...

然后访问值作为返回对象的属性:


function updateInfo(response){
         document.getElementById("full_name").value =response['fullname'];
         document.getElementById("email").value =response['email'];

       M.updateTextFields();

        }

推荐阅读