OnlineSignin
線上簽到
給chatGPT的內容:
我想要寫一個點名系統,將簽到記錄寫入Google試算表。
Google試算表結構如下:
1.ID: Google試算表ID。
2.工作表名稱: 工作表1。
3.欄A:班級,欄B:座號,欄C:姓名,欄D:學號,欄E:核取方塊。
系統功能要求如下所列:
1.在Google試算表的GAS內執行HTML。
2.HTML是一個表單,輸入學生學號當作簽到。
3.簽到後會將Google試算表內的核取方塊打勾。
4.打包Apps Script程式碼成HTML網頁。
5.打包後的HTML網頁可輸入「學號」。
6.透過「學號」尋找Google試算表的相對學號後,核取方塊(欄E)打勾。
7.回應HTML網頁是否已成功?
請詳細說明撰寫步驟與注意事項,謝謝。
網頁alter彈出視窗版本
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<h1>簽到系統</h1>
<form id="attendanceForm">
<label for="studentId">學號:</label>
<input type="text" id="studentId" name="studentId" required>
<button type="submit">簽到</button>
</form>
<script>
document.getElementById("attendanceForm").addEventListener("submit", function(event) {
event.preventDefault();
var studentId = document.getElementById("studentId").value;
google.script.run.withSuccessHandler(function(success) {
if (success) {
alert("簽到成功!");
} else {
alert("找不到該學號!");
}
}).markAttendance(studentId);
});
</script>
</body>
</html>
function doGet() {
return HtmlService.createHtmlOutputFromFile('index');
}
function markAttendance(studentId) {
var spreadsheetId = '試算表ID'; // 填入你的試算表 ID
var sheetName = '工作表1'; // 填入你的工作表名稱
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
var sheet = spreadsheet.getSheetByName(sheetName);
var range = sheet.getRange("D2:D"); // 學號的範圍,假設是從 C2 開始的
var studentIds = range.getValues().flat();
var rowIndex = studentIds.indexOf(studentId);
if (rowIndex > -1) {
var checkboxCell = sheet.getRange(rowIndex + 2, 5); // 核取方塊的欄位是從第5欄開始的
checkboxCell.setValue(true);
return true;
}
return false;
}