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;

}