Trong bài này, giaoan.link chia sẻ đến các bạn cách Tạo Google Sheet Form sử dụng Apps Script, html và javascript.
Ưu điểm của việc sử dụng form Google sheet:
- Dễ dàng chia sẻ link thu thập thông tin
- Dùng html thiết kế Form đẹp mắt
- Lưu dữ liệu trên đám mây của Google
Các code sử dụng trong video hướng dẫn bên dưới:
Code trang Index.html:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<?!= include('JavaScript'); ?>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-6">
<form id="myForm" onsubmit="handleFormSubmit(this)">
<p class="h4 mb-4 text-center">NHẬP THÔNG TIN</p>
<div class="form-row">
<div class="form-group col-mb-6">
<label for="full_name">Họ và tên</label>
<input type="text" class="form-control" id="full_name" name="full_name" placeholder="Họ và tên">
</div>
</div>
<div class="form-row">
<div class="form-group col-mb-6">
<p>Giới tính</p>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="gender" id="male" value="Nam">
<label class="form-check-lable" for="male">Nam</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="gender" id="female" value="Nữ">
<label class="form-check-lable" for="female">Nữ</label>
</div>
</div>
<div class="form_group col-mb-6">
<label for="dateOfBirth">Năm sinh</label>
<input type="date" class="form-control" id="dateOfBirth" name="dateOfBirth">
</div>
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Địa chỉ email">
</div>
<div class="form-group">
<label for="phone">Số điện thoại</label>
<input type="tel" class="form-control" id="phone" name="phone" placeholder="Số điện thoại">
</div>
<button type="submit" class="btn btn-primary btn-block">Gửi đi</button>
</div>
</form>
<div id="output"></div>
</div>
</div>
</div>
</body>
</html>
Code trang “Code.gs”
function doGet(request) {
return HtmlService.createTemplateFromFile('Index').evaluate();
}
function include(filename){
return HtmlService.createHtmlOutputFromFile(filename).getContent();
}
function processForm(formObject){
var url="";
var ss= SpreadsheetApp.openByUrl(url);
var ws=ss.getSheetByName("Data");
ws.appendRow([
formObject.full_name,
formObject.gender,
formObject.dateOfBirth,
formObject.email,
formObject.phone
]);
}
Code trang “JavaScript.html”
<script>
function preventFormSubmit(){
var forms=document.querySelectorAll('form');
for (var i=0;i<forms.length;i++){
forms[i].addEventListener('submit',function(event){
event.preventDefault();
});
}
}
window.addEventListener('load',preventFormSubmit);
function handleFormSubmit(formObject){
google.script.run.processForm(formObject);
document.getElementById("myForm").reset();
}
</script>