0
我試圖創建一個簡單的數據庫來處理某些用戶數據。目前我正在嘗試在創建新用戶的HTML頁面上工作。我有一些代碼可以從HTML頁面輸入並將其插入到電子表格中。該表格要求輸入用戶名,密碼和顯示名稱。然後這些被傳入電子表格。但是,我想要做的是檢查用戶名是否已經存在,如果有,請將彈出窗口發送回HTML頁面。我無法弄清楚這一點。到目前爲止,我有:Google App腳本:比較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循環,那裏是腳本檢查現有條目的位置。這有效,如果我登錄那裏然後記錄器接受它。我只需要知道如何將彈出窗口發送到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>
你說的HTML網頁是什麼意思?一個Apps腳本Web應用程序?非Google網站?電子表格中的對話框?電子表格中的側邊欄?您可能需要使用'google.script.run.functionName()'和'withSuccessHandler(函數名稱)'[Apps腳本文檔 - 客戶端API](https://developers.google.com/apps-script/guides/html/reference/run) –
是的,我的意思是一個應用程序腳本的Web應用程序。那麼,withSuccessHandler函數是否會彈出對話框? –
是的。 'withSuccessHandler'函數自動接收從服務器返回的任何內容。所以,你可以返回一個值,或者你可以將HTML作爲一個字符串返回。 'withSuccessHandler'提供了一種方法來調用服務器,取回某些東西,然後只有在服務器代碼完成時觸發另一個函數。 –