Google App Script:比较HTML文本框中的值并返回消息(如果存在)

时间:2016-12-21 16:23:24

标签: google-apps-script

我试图创建一个简单的数据库来处理一些用户数据。目前,我正在尝试处理创建新用户的HTML页面。我有一些代码可以从HTML页面获取输入并将其插入到电子表格中。表单要求提供用户名,密码和显示名称。然后将它们传递到电子表格中。但是,我想要做的是检查用户名是否已经存在,如果已经存在,请将弹出窗口发送回HTML页面。我无法弄清楚那一点。到目前为止,我有:

function createNewPlayer(form) {
var playerSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Players");
var lastColumn = playerSheet.getLastColumn()


var defaultsSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Defaults");
var getDefaults = defaultsSheet.getRange(7, 3, 37, 1)
var defaults = getDefaults.getValues();

var name = form.PlayerName;
var password =form.Password;
var displayName = form.DisplayName



var playerNameRow = playerSheet.getRange(1, 4, 1, lastColumn - 1); // get all the columns
var playerNameValues = playerNameRow.getValues(); // get the values

var findPlayer = name;


for (var j = 0; j < playerNameValues[0].length; j++){
if (playerNameValues[0][j] == findPlayer) {
 IF THIS NAME EXISTS STOP THE PROCESS AND RETURN A POPUP ON THE PAGE}


var setName = playerSheet.getRange(1, lastColumn + 1, 1, 1);
var setPassword = playerSheet.getRange(2, lastColumn + 1, 1, 1);
var setDisplayName = playerSheet.getRange(3, lastColumn + 1, 1, 1);

var setDefault = playerSheet.getRange(5, lastColumn + 1, 37, 1);

setName.setValue(name);
setPassword.setValue(password);
setDisplayName.setValue(displayName);
setDefault.setValues(defaults)

您会看到中间有一个For循环,脚本会检查现有条目。这是有效的,如果我在那里记录,那么Logger会接受它。我只需要知道如何将Popup发送到HTML页面?

为了清晰起见,添加了HTML:

<body> 
<h1> New </h1> 

<div class="block result-display" id="results"> 


<html>

<head>
    <title>Test Page</title>
</head>

<body>
    <form>
        Enter your Player Name<input type="text" value="" name="PlayerName"/><br>
        Enter your Password<input type="password" value="" name="Password"/><br>
        Enter your Display Name<input type="text" value="" name="DisplayName"/><br>
        <input type="button" onClick="formSubmit()" value="Submit" />
    </form>
</body>
<script type="text/javascript">
    function formSubmit() {
        google.script.run.createNewPlayer(document.forms[0]);
    }
</script>

1 个答案:

答案 0 :(得分:1)

在客户端API调用中添加withSuccessHandler(functionName)

<script type="text/javascript">
    function formSubmit() {
      google.script.run
        .withSuccessHandler(showReturnedContent)
        .createNewPlayer(document.forms[0]);
    }

  window.showReturnedContent = function(rtrnedValue) {
    console.log("showReturnedContent ran!");
    console.log("rtrnedValue: " + rtrnedValue);

    //To Do - Add code to show new HTML content
  }
</script>