Last active
March 7, 2025 02:08
-
-
Save neno-tech/81815092cdc6cd81a2429d71c34637e0 to your computer and use it in GitHub Desktop.
การบันทึกข้อมูลลงชีตด้วยไฟล์ HTML
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sheetName = 'xxx' | |
var scriptProp = PropertiesService.getScriptProperties() | |
function intialSetup () { | |
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet() | |
scriptProp.setProperty('key', activeSpreadsheet.getId()) | |
} | |
function doPost (e) { | |
var lock = LockService.getScriptLock() | |
lock.tryLock(10000) | |
try { | |
var doc = SpreadsheetApp.openById(scriptProp.getProperty('key')) | |
var sheet = doc.getSheetByName(sheetName) | |
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0] | |
var nextRow = sheet.getLastRow() + 1 | |
var newRow = headers.map(function(header) { | |
return header === 'timestamp' ? new Date() : e.parameter[header] | |
}) | |
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow]) | |
return ContentService | |
.createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow })) | |
.setMimeType(ContentService.MimeType.JSON) | |
} | |
catch (e) { | |
return ContentService | |
.createTextOutput(JSON.stringify({ 'result': 'error', 'error': e })) | |
.setMimeType(ContentService.MimeType.JSON) | |
} | |
finally { | |
lock.releaseLock() | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<title>Form test</title> | |
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> | |
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> | |
</head> | |
<body> | |
<div class="pt-4"></div> | |
<div class="container"> | |
<div> | |
<h3 class="text-center">ฟอร์มบันทึกข้อมูลด้วย HTML</h3> | |
</div> | |
<form method="post" autocomplete="off" name="hello-sheet"> | |
<div class="form-group"> | |
<label for="name">ชื่อ สกุล</label> | |
<input type="text" class="form-control" placeholder="ชื่อ สกุล" name="ชื่อ-สกุล"> | |
</div> | |
<div class="form-group"> | |
<label for="name">ชื่อเล่น</label> | |
<input type="text" class="form-control" placeholder="ชื่อเล่น" name="ชื่อเล่น"> | |
</div> | |
<div class="form-group"> | |
<label for="name">เบอร์โทร</label> | |
<input type="text" class="form-control" placeholder="เบอร์โทร" name="เบอร์โทร"> | |
</div> | |
<div class="form-group"> | |
<label for="exampleInputEmail1">อีเมล</label> | |
<input type="email" name="อีเมล" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="อีเมล"> | |
</div> | |
<button type="submit" name="submit" value="Send message" class="btn btn-primary">บันทึก</button> | |
</form> | |
</div> | |
<script> | |
const scriptURL = 'xxx' | |
const form = document.forms['hello-sheet'] | |
form.addEventListener('submit', e => { | |
e.preventDefault() | |
fetch(scriptURL, { method: 'POST', body: new FormData(form)}) | |
.then(response => alert("บันทึกข้อมูลเรียบร้อยแล้ว..")) | |
.catch(error => console.error('Error!', error.message)) | |
}) | |
</script> | |
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment