我试图创建一个简单的数据库来处理一些用户数据。目前,我正在尝试处理创建新用户的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>
答案 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>