์Note

Script ที่จำเป็นสำหรับการทำฟอร์ม

Sheet link Make copy before use this google sheet

https://docs.google.com/spreadsheets/d/1Z2B41UGDdCu4evg1zNEEvbx_DC83WexXGkMQrUwxih4/edit?usp=sharing

Google App Script

Code.gs
function doGet(e) {
  return HtmlService.createTemplateFromFile('form').evaluate().setTitle("แบบฟอร์มรับข้อมูล");
}

function uploadFileToGoogleDrive(data, file,idCard,type,gen,gender,firstname,lastname,nickname,birthdate,religion,blood,moo,district,amphoe,
                                 province,cnt,zipcode,ptel,email,line,emergen,emergtel,dm,HP,LP,heart,kidney,asma,hiegth,weight,chest,waist,hip,neck,fat,shape,bodytype,
                                 package,team,shirtsize,consent,frequency,rec3,rec4,rec5,PicID,PicURL) {

  //บรรทัดที่ 11 id ทั้งหลายต้องเรียงตามลำดับ ให้เหมือนใน form html บรรทัด 495 ถึงบรรทัดที่ 543 มิฉะนั้นการนำข้อมูลลงตารางกูเกิลชีทจะเพี้ยน ๆ สลับไปสลับมา ลงไม่ตรงสักที//
  
  try {
   
    var folder=DriveApp.getFolderById('1M-Mj8bTKsgchkHF2PE1s-QboksN95TO5'); // ไอดีของโฟลเดอร์ของกูเกิลไดรฟที่เราจะให้อัพโหลดรูปไปเก็บ
   
    var contentType = data.substring(5,data.indexOf(';')),
        bytes = Utilities.base64Decode(data.substr(data.indexOf('base64,')+7)),
        blob = Utilities.newBlob(bytes, contentType, file),
       // file = folder.createFile(blob),
      file = folder.createFolder([firstname+lastname+new Date()]).createFile(blob),
        filelink=file.getUrl(),
        filelid =file.getId() ;
  var lock = LockService.getPublicLock();
  lock.waitLock(30000);    
   
    var doc = SpreadsheetApp.openById("1Z2B41UGDdCu4evg1zNEEvbx_DC83WexXGkMQrUwxih4"); ///ไอดีของกูเกิลชีทที่เราจะอัพโหลดข้อมูลเข้าไป
    var sheet = doc.getSheetByName("name");
    var headRow =  1;
    var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
    var nextRow = sheet.getLastRow()+1; 
    var row = [];

     for (i in headers){
     ///ตัวหนังสือสีแดงในบรรทัดที่ 38 ถึง 142 ต้องตรงเป๊ะกับหัวตารางกูเกิลชีท ที่เราจะให้ข้อมูล input แต่ละตัว เข้าไป  
      if (headers[i] == "เลขบัตรประชาชน"){ 
        row.push(idCard);
      
      } else if (headers[i] == "ประเภทการสมัคร"){
        row.push(type);
      } else if (headers[i] == "รุ่นหอ"){
        row.push(gen);
      } else if (headers[i] == "เพศ"){
        row.push(gender);  
      } else if (headers[i] == "NAME"){
        row.push(firstname);
      } else if (headers[i] == "Lastname"){
        row.push(lastname);
      } else if (headers[i] == "ชื่อเล่น"){
       row.push(nickname);
      } else if (headers[i] == "วันเดือนปีเกิด"){
        row.push(birthdate);
      } else if (headers[i] == "ศาสนา"){
        row.push(religion);
      } else if (headers[i] == "หมู่เลือด"){
        row.push(blood);
          
     } else if (headers[i] == "บ้านเลขที่หมู่ที่"){
        row.push(moo);   
     } else if (headers[i] == "ตำบล"){
        row.push(district);   
     } else if (headers[i] == "อำเภอ"){
        row.push(amphoe);   
     } else if (headers[i] == "จังหวัด"){
        row.push(province);   
     } else if (headers[i] == "ประเทศ"){
        row.push(cnt);   
    
     } else if (headers[i] == "รหัสไปรษณีย์"){
        row.push(zipcode);  
     } else if (headers[i] == "เบอร์โทร"){
        row.push("TEL- "+ptel);
     } else if (headers[i] == "Email"){
        row.push(email);
     } else if (headers[i] == "ไลน์ไอดี"){
        row.push("LineID-"+line);
    } else if (headers[i] == "ผู้ติดต่อกรณีฉุกเฉิน"){
        row.push(emergen);       
    } else if (headers[i] == "เบอร์โทรผู้ติดต่อฉุกเฉิน"){
        row.push("TEL- "+emergtel);  
     
     
     } else if (headers[i] == "โรคเบาหวาน"){ 
        row.push(dm)        
       } else if (headers[i] == "โรคความดันสูง"){ 
        row.push(HP);      
      } else if (headers[i] == "โรคความดันต่ำ"){ 
        row.push(LP);      
      } else if (headers[i] == "โรคหัวใจ"){ 
        row.push(heart);      
     } else if (headers[i] == "โรคไต"){ 
        row.push(kidney);      
      } else if (headers[i] == "หอบหืด"){ 
        row.push(asma);      
  
      } else if (headers[i] == "ส่วนสูง"){ 
        row.push(hiegth);   
     } else if (headers[i] == "น้ำหนัก"){ 
        row.push(weight);        
       } else if (headers[i] == "รอบอก"){ 
        row.push(chest);      
      } else if (headers[i] == "รอบเอว"){ 
        row.push(waist);      
      } else if (headers[i] == "ตะโพก"){ 
        row.push(hip);  
      } else if (headers[i] == "รอคอ"){ 
        row.push(neck);      
         
      } else if (headers[i] == "เปอร์เซนต์ไขมัน"){ 
        row.push(fat);      
     } else if (headers[i] == "การสะสมไขมัน"){ 
        row.push(shape);     
     } else if (headers[i] == "ประเภทรูปร่าง"){ 
        row.push(bodytype);     
     
     
     
     
     
     } else if (headers[i] == "Package"){
        row.push(package);   
      } else if (headers[i] == "ทีม"){
        row.push(team);   
      } else if (headers[i] == "ขนาดเสื้อ"){
        row.push(shirtsize);   
    
    
     } else if (headers[i] == "ความยินยอม"){
        row.push(consent);   
     } else if (headers[i] == "ความถี่การออกกำลังกาย"){
        row.push(frequency);   
     } else if (headers[i] == "คำแนะนำ3"){
        row.push(rec3);   
     
     } else if (headers[i] == "คำแนะนำ4"){
        row.push(rec4);
      } else if (headers[i] == "คำแนะนำ5"){
        row.push(rec5);
    
   
   
   } else if (headers[i] == "PicID"){
        row.push(filelid);   
     } else if (headers[i] == "PicURL"){
        row.push(filelink);   
     }
       
    }

    sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
    return "OK";
   } catch (f) {
    return f.toString();
  } finally {
    lock.releaseLock();
  }

}

function getDataUrl(id) {
        let tmp = DriveApp.getFileById(id)
        if (tmp) {
        let bytes = Utilities.base64Encode(tmp.getThumbnail().copyBlob().getBytes())
        let type = tmp.getMimeType()
          return {
          bytes: bytes,
          type: type
        } //`data:${type};base64,${bytes}`
       
      }
  }


function getCode(code) {
var ss =  SpreadsheetApp.openById("1Z2B41UGDdCu4evg1zNEEvbx_DC83WexXGkMQrUwxih4").getSheetByName('name')
var data =ss.getDataRange().getDisplayValues().filter(row=> {
      return row[0]==code
  })

if(data.length > 0) return true
else return false
    
}

form.html
<!DOCTYPE html>

<html>

<head>
    <base target="_blank">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>xxxx</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <style>
        .disclaimer {
            width: 480px;
            color: #646464;
            margin: 20px auto;
            padding: 0 16px;
            text-align: center;
            font: 400 12px Roboto, Helvetica, Arial, sans-serif
        }
        
        .disclaimer a {
            color: #009688
        }
        
        #credit {
            display: none
        }
        
        .twitter-typeahead {
            width: 100%;
            background: #fff
        }
        
        .tt-suggestion {
            padding: 10px 5px;
            background: #ffe;
            color: #000;
            border-bottom: 1px solid #eee;
            cursor: pointer
        }
        
        .input1 {
            background: white;
            border: 2px pink solid;
            color: #0000FF;
            background: white;
            text-align: center;
            height: 35px;
            border-radius: 5px;
            background: white;
        }
         .big{ width: 1.5em; height: 1.5em; }   
         .biger{ width: 2em; height: 2em; }   
   </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous"></script>
    <!-- CSS only -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
    <!-- JavaScript Bundle with Popper -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous" />
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" />
    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.1.1/dist/select2-bootstrap-5-theme.min.css" />
</head>

<body>
    <div class="container-fluid">
        <form class="main" id="form" novalidate="novalidate" style="max-width: 100%;margin: 40px auto;">
            <? var banner = getDataUrl('1w5uroJZ9wMO59zpcJh8YljflfCm8Mbd1') ?>
                <img src="data:<?= banner.type ?>;base64,<?= banner.bytes ?>" width="100%" class="img-fluid" alt="Responsive image">
                <div id="forminner">
                    <div class="alert alert-primary" role="alert">
                        <center>
                            <B>
                            <font color=#004d00 size=5>กรุณากรอกข้อมูลเพื่อสมัคร
                                <Br>
                            </font>
                            </B>
                        </center>
                    </div>
                    <!--อัปโหลดรูภาพ-->
                    <div class="alert alert-danger" role="alert">
                        <center>
                            <B><font color=black size=5>รูปภาพประจำตัวของท่าน</font></B> </center>
                        <Br>
                        <div class="form-row">
                            <div class="file-field col s12">
                                <div class="btn">
                                    <span style="color:blue"><font size=4>เลือกรูปภาพประจำตัวของท่าน</font></span>
                                    <input id="files" type="file">
                                </div>
                                <div class="file-path-wrapper">
                                    <input class="file-path validate" type="text" placeholder="เมื่อเลือกได้ชื่อไฟล์จะแสดงที่นี่">
                                </div>
                                <div class="form-row">
                                    <img id="image" width=100% />
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="alert alert-info" role="alert">
                        <center>
                            <B><font color=black size=5>ข้อมูลจำเป็นในการประกอบการสมัคร</font></B> </center>
                        <center>
                            <B><font color=red size=3>ข้อมูลชื่อและเลขประจำตัวประชาชน รุ่น ประเภท ศาสนาและกรุ๊ปเลือด เพื่อการยืนยันตัวตน ข้อมูลที่อยู่เพื่อการจัดส่ง ข้อมูลบางช่องบังคับตอบบางช่องไม่บังคับ</font></B> </center>
                        <Br>
                    </div>
                    <div class="form-row">
                        <div class="alert alert-info" role="alert">
                            <div class="form-row">
                                <div class="form-group col-md-2">
                                    <label for="idCard"><B><font size=3 color=#004d00>CITIZENID</font></B></label>
                                    <input type="text area" class="form-control" id="idCard" name="idCard" maxlength="13" placeholder="เลขประชาชน" height="100">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="type"><B><font size=3 color=#004d00>ประเภท</font></B></label>
                                    <select id="type" class="form-select">
                                         <option value="บุคคลทั่วไป">บุคคลทั่วไป</option>
                                         <option value="ศิษย์เก่าหอพัก">นิสิตเก่าหอพัก</option>
                                         <option value="นิสิตปัจจุบัน">นิสิตปัจจุบัน</option>
                                     </select>
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="gen"><B><font size=3 color=#004d00>รุ่นหอพิมพ์ปีที่เข้า</font></B></label>
                                    <select id="gen" name="gen" class="js-example-basic-single">
                                    <option disabled selected value="">เลือกปีที่จบ</option>
                                    <?  var data =  SpreadsheetApp.openById("1Z2B41UGDdCu4evg1zNEEvbx_DC83WexXGkMQrUwxih4").getSheetByName('nation').getRange("C3:D").getDisplayValues().filter(r => r[0] != ''); ?>
                                    <? data.forEach(row => { ?>
                                    <option value="<?= row[0] ?>">
                                        <?= row[1] ?>
                                    </option>
                                    <?  }) ?>
                                </select>
                                </div>
                                <div class="form-group col-md-1">
                                    <label for="gender"><B><font size=3 color=#004d00>เพศ</font></B></label>
                                    <select id="gender" class="form-select">
                                         <option value="" disabled selected>ระบุเพศ</option>
                                         <option value="ชาย">ชาย</option>
                                         <option value="หญิง">หญิง</option>
                                         
                                     </select>
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="firstname"><B><font size=3 color=#004d00>ชื่อ</font></B></label>
                                    <input type="text area" class="form-control" id="firstname" name="firstname" maxlength="50" placeholder="ชื่อ">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="lastname"><B><font size=3 color=#004d00>นามสกุล</font></B></label>
                                    <input type="text area" class="form-control" id="lastname" name="lastname" maxlength="50" placeholder="นามสกุล">
                                </div>
                                <div class="form-group col-md-1">
                                    <label for="nickname"><B><font size=3 color=#004d00>ชื่อเล่น</font></B></label>
                                    <input type="text area" class="form-control" id="nickname" name="nickname" maxlength="50" placeholder="ชื่อเล่น">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="birthdate"><B><font size=3 color=#004d00>วันเดือนปีเกิด</font></B></label>
                                    <input type="date" class="form-control" id="birthdate" name="birthdate" maxlength="50" placeholder="วันที่/เดือน/ปี ค.ศ.เกิด">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="religion"><B><font size=3 color=#004d00>ศาสนาของท่าน</font></B></label>
                                    <select id="religion" class="form-select">
                                         <option value="" disabled selected>ศาสนาของท่าน</option>
                                         <option value="พุทธ">ศาสนาพุทธ</option>
                                         <option value="คริสต์">ศาสนาคริสต์</option>
                                         <option value="อิสลาม">ศาสนาอิสลาม</option>
                                         <option value="ฮินดู">ศาสนาฮินดู</option>
                                        <option value="ซิก">ศาสนาซิกซ์</option>
                                        <option value="อื่น ๆ">ศาสนาอื่น ๆ </option>
                                  </select>
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="blood"><B><font size=3 color=#004d00>กรุ๊ปเลือดของท่าน</font></B></label>
                                    <select id="blood" class="form-select">
                                       <option value="" disabled selected>กรุ๊ปเลือดของท่าน</option>
                                       <option value="O">กรุ๊ป O</option>
                                       <option value="A">กรุ๊ป A</option>
                                       <option value="B">กรุ๊ป B</option>
                                       <option value="AB">กรุ๊ป AB</option>
                                       <option value="Rh-">กรุ๊ป Rh-</option>
                                       <option value="Rh+">กรุ๊ป Rh+</option>
                                   </select>
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="moo"><B><font size=3 color=black>บ้านเลขที่ หมู่ที่ </font></B></label>
                                    <input type="text area" class="form-control" id="moo" name="moo" maxlength="100" placeholder="บ้านเลขที่ หมู่ที่ ">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="district"><B><font size=3 color=black>ตำบล</font></B></label>
                                    <input type="text area" class="form-control" id="district" name="district" maxlength="50" placeholder="ตำบล">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="amphoe"><B><font size=3 color=black>อำเภอ</font></B></label>
                                    <input type="text area" class="form-control" id="amphoe" name="amphoe" maxlength="50" placeholder="อำเภอ">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="province"><B><font size=3 color=black>จังหวัด</font></B></label>
                                    <input type="text area" class="form-control" id="province" name="province" maxlength="50" placeholder="จังหวัด">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="cnt"><B><font size=3 color=black>ประเทศ</font></B></label>
                                    <input type="text area" class="form-control" id="cnt" name="cnt" maxlength="50" placeholder="ประเทศ">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="zipcode"><B><font size=3 color=black>รหัสไปรษณีย์</font></B></label>
                                    <input type="text area" class="form-control" id="zipcode" name="zipcode" maxlength="13" placeholder="รหัสไปรษณีย์">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="ptel"><B><font size=3 color=#004d00>เบอร์โทรศัพท์</font></B></label>
                                    <input type="text area" class="form-control" id="ptel" name="ptel" maxlength="50" placeholder="เบอร์ xxx-xxxxxxx">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="email"><B><font size=3 color=#004d00>อีเมล์</font></B></label>
                                    <input type="text area" class="form-control" id="email" name="email" maxlength="50" placeholder="อีเมล์">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="line"><B><font size=3 color=#004d00>ไลน์ไอดี</font></B></label>
                                    <input type="text area" class="form-control" id="line" name="line" maxlength="50" placeholder="ใส่ไลน์ไอดี">
                                </div>
                                <div class="form-group col-md-2">
                                    <label for="emergen"><B><font size=3 color=black>ผู้ติดต่อกรณีฉุกเฉิน</font></B></label>
                                    <input type="text area" class="form-control" id="emergen" name="emergen" maxlength="50" placeholder="ระบุชื่อผู้ติดต่อกรณีฉุกเฉิน">
                                </div>
                                <div class="form-group col-md-3">
                                    <label for="emergtel"><B><font size=3 color=black>เบอร์โทรผู้ติดต่อฉุกเฉิน</font></B></label>
                                    <input type="text area" class="form-control" id="emergtel" name="emergtel" maxlength="20" placeholder="ระบุเบอร์โทรผู้ติดต่อ">
                                </div>
                            </div>
                            <div class="alert alert-warning" role="alert">
                                <B><center><font color=#660066 size=5>ประวัติสุขภาพและโรคประจำตัวที่มีผลต่อการออกกำลังกาย</font></center></B>
                                <center>
                                    <font color=green size=3>การตอบข้อมูลโรคประจำตัวเพื่อให้แอพให้คำแนะนำการออกกำลังกายที่เหมาะสมกับโรคประจำตัว</font>
                                </center><BR>
                          
                           <BR>
                                <div class="form-row">
                                    <div class="form-group col-md-2">
                                        <input type="checkbox" name="dm" value="เบาหวาน" id="dm">
                                        <label for="dm"><font size=4 color=red>เบาหวาน</font></label>
                                        <Br>
                                    </div>
                                    <div class="form-group col-md-2">
                                        <input type="checkbox" name="HP" value="ความดันสูง" id="HP">
                                        <label for="HP"><font size=4 color=red>ความดันสูง</font></label>
                                        <Br>
                                    </div>
                                    <div class="form-group col-md-2">
                                        <input type="checkbox" name="LP" value="ความดันต่ำ" id="LP">
                                        <label for="LP"><font size=4 color=red>ความดันต่ำ</font></label>
                                        <Br>
                                    </div>
                                    <div class="form-group col-md-2">
                                        <input type="checkbox" name="heart" value="โรคหัวใจ" id="heart">
                                        <label for="heart"><font size=4 color=red>โรคหัวใจ</font></label>
                                        <Br>
                                    </div>
                                    <div class="form-group col-md-2">
                                        <input type="checkbox" name="kidney" value="โรคไต" id="kidney">
                                        <label for="kidney"><font size=4 color=red>โรคไต</font></label>
                                        <Br>
                                    </div>
                                    <div class="form-group col-md-2">
                                        <input type="checkbox" name="asma" value="หอบหืด" id="asma">
                                        <label for="asma"><font size=4 color=red>หอบหืด</font></label>
                                        <Br>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <center>
                      
                    <div class="alert alert-success" role="alert">
                    <B><font color=#000066 size=5>ข้อมูลสภาพร่างกายเพื่อการให้คำแนะนำในการออกกำลังกาย</font></B>
                    <center>
                        <font color=green size=3>การตอบข้อมูลขนาดร่างกาย เพื่อเราคำนวณค่า BMI BMR เปอร์เซนต์ไขมัน อัตราส่วนเอวต่อส่วนสูง และเอวต่อตะโพก เพื่อการแนะนำการออกกำลังกาย</font>
                    </center>
                     </div>

                    <div class="alert alert-danger" role="alert">
                        <? var banner = getDataUrl('1-Aif17_98xdCEdKamtFE--xrCv0IFbMS') ?>
                            <img src="data:<?= banner.type ?>;base64,<?= banner.bytes ?>" 
                            width="100%" class="img-fluid" alt="Responsive image"><Br>
                           <Br>
                                <center>
                                    <B><font size=5 color=black>น้ำหนัก ส่วนสูง รอบอก รอบเอว ตะโพก</font></B><Br>
                                </center>
                                <div class="form-row">
                                    <div class="form-group col-md-2">
                                        <center><label for="hiegth"><B><font size=4 color=#004d00>ส่วนสูง</font></B></label></center>
                                        <input type="text area" class="form-control input1" id="hiegth" name="hiegth" maxlength="6" placeholder="ส่วนสูงเป็นเซนติเมตร">
                                    </div>
                                    <div class="form-group col-md-2">
                                        <center><label for="weight"><B><font size=4 color=#004d00>น้ำหนัก</font></B></label></center>
                                        <input type="text area" class="form-control input1" id="weight" name="weight" maxlength="6" placeholder="น้ำหนักกิโลกรัม">
                                    </div>
                                    <div class="form-group col-md-2">
                                        <center><label for="chest"><B><font size=4 color=#004d00>รอบอก</font></B></label></center>
                                        <input type="text area" class="form-control input1" id="chest" name="chest" maxlength="3" placeholder="รอบอกเป็นเซนติเมตร">
                                    </div>
                                    <div class="form-group col-md-2">
                                        <center><label for="waist"><B><font size=4 color=#004d00>รอบเอว</font></B></label></center>
                                        <input type="text area" class="form-control input1" id="waist" name="waist" maxlength="3" placeholder="รอบเอวเป็นเซนติเมตร">
                                    </div>
                                    <div class="form-group col-md-2">
                                        <center><label for="hip"><B><font size=4 color=#004d00>รอบตะโพก</font></B></label></center>
                                        <input type="text area" class="form-control input1" id="hip" name="hip" maxlength="3" placeholder="รอบตะโพกเป็นเซนติเมตร">
                                    </div>
                                    <div class="form-group col-md-2">
                                        <center><label for="neck"><B><font size=4 color=#004d00>รอบคอ</font></B></label></center>
                                        <input type="text area" class="form-control input1" id="neck" name="neck" maxlength="3" placeholder="รอบคอเป็นเซนติเมตร">
                                    </div>
                                </div>
                              </div>   
                                
                           <div class="alert alert-success" role="alert">
                                <? var banner = getDataUrl('1FPWEDlWXMqC9aoFW9nhgpANrZhhM2DgE') ?>
                                    <img src="data:<?= banner.type ?>;base64,<?= banner.bytes ?>" width="100%" class="img-fluid" alt="Responsive image"><Br>
                                  <Br>
                                        <center>
                                            <div class="form-group col-md-4">
                                                <label for="fat"><B><font size=5 color=black>ประมาณเปอร์เซนต์ไขมันของท่านจากภาพ</font></B></label>
                                                <input type="number" class="form-control input1" id="fat" name="fat" maxlength="500" placeholder="เปอร์เซนต์ไขมันเมื่อเทียบจากภาพ">
                                            </div>
                                        </center>
                           </div>
                                   
                                 <div class="alert alert-primary" role="alert">  
                                   
                                   <? var banner = getDataUrl('1ea1e48s_W-j9zmolFG1r1me-IYNk1ado') ?>
                                        <img src="data:<?= banner.type ?>;base64,<?= banner.bytes ?>" width="100%" class="img-fluid" alt="Responsive image"><Br>
                                        <BR>
                                        <B><center><font size=5 color =black>ระบุตำแหน่งการสะสมไขมันของท่าน เพื่อทราบสาเหตุและรับคำแนะนำจากแอพพลิเคชั่น</font></center></B>
                                        
                                        <div class="form-row">
                                          
                                            <div class="form-check mt-2">
                                                <input class="big" type="radio" name="shape" id="shape_0" value="0" hieght="10em" >
                                                <label class="form-check-label" for="flexRadioDefault"><font size=6>แบบ 0</font></label>
                                            </div>
                                            <div class="form-check mt-2">
                                                <input class="big" type="radio" name="shape" id="shape_1" value="1">
                                                <label class="form-check-label" for="flexRadioDefault"><font size=6>แบบ 1</font></label>
                                            </div>
                                            <div class="form-check mt-2">
                                                <input class="big" type="radio" name="shape" id="shape_2" value="2">
                                                <label class="form-check-label" for="flexRadioDefault"><font size=6>แบบ 2</font></label>
                                            </div>
                                            <div class="form-check mt-2">
                                                <input class="big" type="radio" name="shape" id="shape_3" value="3">
                                                <label class="form-check-label" for="flexRadioDefault"><font size=6>แบบ 3</font></label>
                                            </div>
                                            <div class="form-check mt-2">
                                                <input class="big" type="radio" name="shape" id="shape_4" value="4">
                                                <label class="form-check-label" for="flexRadioDefault"><font size=6>แบบ 4</font></label>
                                            </div>
                                            <div class="form-check mt-2">
                                                <input class="big" type="radio" name="shape" id="shape_5" value="5">
                                                <label class="form-check-label" for="flexRadioDefault"><font size=6>แบบ 5</font></label>
                                            </div>
                                            <div class="form-check mt-2">
                                                <input class="big" type="radio" name="shape" id="shape_6" value="6">
                                                <label class="form-check-label" for="flexRadioDefault"><font size=6>แบบ 6</font></label>
                                            </div>
                                         
                                    </div>
                                   </div>    
                                       
                                 
                                        
                                   <div class="alert alert-info" role="alert">     
                                        
                                        <? var banner = getDataUrl('1nfOSrkZEru8Oj2pOSvwg4zrJBw9mAihC') ?>
                                            <img src="data:<?= banner.type ?>;base64,<?= banner.bytes ?>" width="100%" class="img-fluid" alt="Responsive image">
                                            <Br>
                                            <B><center><font size=5 color=blue>ระบุ Body Type ของท่าน เพื่อรับคำแนะนำในการออกกำลังกายและรับประทานอาหารให้เหมาะกับท่าน</font></center></B>
                                              <div class="form-row">
                                                <div class="form-check mt-2">
                                                    <input class="biger" type="radio" name="bodyType" id="bodytype_T" value="T">
                                                    <label class="form-check-label" for="flexRadioDefault1">
                                                        <font size=6 color=purple>ผอมบาง Extomorph</font>
                                                    </label>
                                                </div>
                                                <div class="form-check mt-2">
                                                    <input class="biger" type="radio" name="bodyType" id="bodytype_M" value="M">
                                                    <label class="form-check-label" for="flexRadioDefault1">
                                                        <font size=6 color=purple>สมส่วน Mesomorph</font>
                                                    </label>
                                                </div>
                                                <div class="form-check mt-2">
                                                    <input class="biger" type="radio" name="bodyType" id="bodytype_E" value="E">
                                                    <label class="form-check-label" for="flexRadioDefault1">
                                                        <font size=6 color=purple>อ้วนล่ำ Endomprph</font>
                                                    </label>
                                                </div>
                                         </div>
                                   </div>
                            
                            <div class="alert alert-danger" role="alert">
                            <center><label for="frequency"><B><font size=5 color=Green>ความถี่ในการออกกำลังกายต่อสัปดาห์</font></B></label></center>
                                  <div class="form-group col-md-12">   
                                   <select id="frequency"  class="form-select">
                                      <option value="" disabled selected>ความถี่ของการออกกำลังกาย</option>
                                      <option value="1.2">ไม่ได้ออกกำลังกายเลย </option>
                                      <option value="1.375">อาทิตย์ละ 1-3 วัน</option>
                                      <option value="1.55">อาทิตย์ละ 3-5 วัน</option>
                                      <option value="1.725">ทุกวัน อาทิตย์ละ 6-7 วัน</option>
                                      <option value="1.90">ทุกวันเช้าเย็น 6-7 วันต่อสัปดาห์</option>
                                   </select>
                              </div>  
                            </div>  
                             
                            <div class="alert alert-primary" role="alert">
                                <center>
                                    <B><font color=#000066 size=5>ข้อมูลการสมัคร</font></B>
                                </center>
                            </div>
                            <div class="alert alert-info" role="alert">
                                  <div class="form-row">
                                       <div class="form-group col-md-6">
                                        <label for="package"><font size=3 color=black>ประเภทการสมัคร</font></label>
                                        <Br>
                                        <select id="package" class="form-select">
                                            <option value="ELIT"> ELIT วิ่งสะสมระยะ 1000++ km ค่าสมัคร 1000 บาท</option>
                                            <option value="WALK">เดินสะสมระยะ 200 km ค่าสมัคร 800 บาท</option>
                                            <option value="RUN">วิ่งสะสมระยะ 200 kmค่าสมัคร 800 บาท </option>
                                            <option value="BIKE">ปั่นจักรยานสะสมระยะ 400 km ค่าสมัคร 800 บาท</option>
                                            <option value="VIP">สมัคร VIP ส่งผลได้ทุกอย่าง ค่าสมัคร 1200 บาท </option>
                                            <option value="TEAM">สมัครประเภททีม 4 คนขึ้นไปราคา คนละ 700 บาท แต่ละคนเลือกส่ง 1 อย่าง </option>
                                            <option value="NISIT">เยาวชน ต่ำกว่า 18 ปี และนิสิตปัจจุบัน ค่าสมัคร 200 บาท</option>
                                        
                                        </select>
                                       </div>
                                   
                                        <div class="form-group col-md-6">
                                            <label for="team"><B><font size=3 color=black>ทีม</font></B></label>
                                           <input type="text area" class="form-control" id="team" name="team" maxlength="200" placeholder="ระบุทีม (มีรางวัลระยะรวมทีมสูงสุดและทีมสมาชิกมากสุด)">
                                        </div>
                                  
                                            <div class="form-group col-md-12">
                                             <center>
                                                <B><font color=#000066 size=5>แบบเสื้อ</font></B>
                                                </center>
                                                <? var banner = getDataUrl('1FxI3CldeoEDI4jHP_5xUZCwCkdLz9c8m') ?>
                                                <img src="data:<?= banner.type ?>;base64,<?= banner.bytes ?>" width="100%" class="img-fluid" alt="Responsive image">
                                             </div>
                                             <div class="form-group col-md-12">
                                                <? var banner = getDataUrl('1zbz4kai7t3HFknVF_TODGL5kvWJQmzGH') ?>
                                                <img src="data:<?= banner.type ?>;base64,<?= banner.bytes ?>" width="100%" class="img-fluid" alt="Responsive image">
                                              </div>
                                              <div class="form-group col-md-8">
                                              <center>
                                                       <B><font color=#000066 size=5>การระบุขนาดเสื้อ</font></B>
                                                        <? var banner = getDataUrl('1iqHa7tdVPUs5FxDT14B5WHCYHW9NgwV7') ?>
                                                        <img src="data:<?= banner.type ?>;base64,<?= banner.bytes ?>" width="100%" class="img-fluid" alt="Responsive image"></center>
                                                </div>
                                                <div class="form-group col-md-4">
                                                      <label for="shirtsize"><font size=5 color=red>ขนาดเสื้อถ้าคนตัวสูงผอมให้เลือกตามความยาว (LENGTH) ถ้าคนอ้วนล่ำให้เลือกตามรอบอก(CHEST)</font></label>
                                                      <Br>
                                                      <select id="shirtsize" class="form-select">
                                                          <option value="" >ระบุขนาดเสื้อที่นี่</option>
                                                          <option value="SS">SS</option>
                                                          <option value="S">S</option>
                                                          <option value="M">M</option>
                                                          <option value="L">L</option>
                                                          <option value="XL">XL</option>
                                                          <option value="2XL">2XL</option>
                                                          <option value="3XL">3XL</option>
                                                          <option value="4XL">4XL</option>
                                                          <option value="5XL">5XL</option>
                                                          <option value="6XL">6XL</option>
                                                       </select>
                                               </div>
                                        </div>
                                 </div>
                             
                                 
                           <div class="alert alert-primary" role="alert">
                                    <center>
                                        <B><font color=#000066 size=5>คำแนะนำอื่น ๆ สำหรับผู้จัด<Br></font></B>
                                    </center>
                                <div class="form-group col-md-12">
                                        <label for="rec3"><B><font size=3 color=black>3</font></B></label>
                                        <input type="text area" class="form-control" id="rec3" name="rec3" maxlength="50" placeholder="">
                                </div>
                                <div class="form-group col-md-12">
                                        <label for="rec4"><B><font size=3 color=black>4</font></B></label>
                                        <input type="text area" class="form-control" id="rec4" name="rec4" maxlength="50" placeholder="">
                                </div>
                                <div class="form-group col-md-12">
                                        <label for="rec5"><B><font size=3 color=black>5</font></B></label>
                                        <input type="text area" class="form-control" id="rec5" name="rec5" maxlength="13" placeholder="">
                                </div>
                           </div>
                               

                               
                               
                               
                           <div class="alert alert-danger" role="alert">
                                  <div class="form-row">
                                      <div class="form-group col-md-12">
                                            <center><label for="consent"><B><font size=5 color=red>คำยินยอมให้ผู้จัดเก็บข้อมูลส่วนบุคคลที่กรอกแบบฟอร์มมา</font></B></label></center>
                                            <select id="consent" class="form-select">
                                                  <option value="" disabled selected>การตกลงยินยอม</option>
                                                  <option value="YES">ยินยอม</option>
                                                  <option value="NO">ไม่ยินยอม</option>
                                            </select>
                                       </div>
                                   </div>
                             
                                
                        
                             <div class="row justify-content-center">
                                     <div class="input-field col s6 text-center">
                                            <button style="width:100%;height:100px" class="btn btn-secondary" id="button" type="submit" onclick="submitForm(); return false;">
                                            <font size=8>กดส่งแบบฟอร์มสมัคร</font>
                                            </button>
                                     </div>
                              </div>
                       </div>
                   
                  </div>
                   
               </div>
                    
        
       </form>
      
      
        <div class="alert alert-info" role="alert">
            <div id="success" style="display:none">
                <h3 class="left-align teal-text">
                    <center>
                        <font color=#6600ff>ดำเนินการส่งข้อมูลการสมัครของท่านเรียบร้อย!</font>
                    </center>
                </h3>
                <div class="alert alert-danger" role="alert">
                    <center>
                        <a href="">
                            <font size=8>สมัครเพิ่มเติม</font>
                        </a>
                    </center>
                    <div class="alert alert-info" role="alert">
                        <center>
                            <a href="">
                                <font size=8>ตรวจข้อมูลการสมัคร</font>
                            </a>
                        </center>
                        <div class="alert alert-warning" role="alert">
                            <center>
                                <a href="https://lin.ee/Fi55SMK">
                                    <font size=6>ติดต่อแอดมินทาง Official Line </font>
                                </a>
                            </center>
                        </div>
                    </div>

                    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.5/js/materialize.min.js"></script>
                    <script type="text/javascript" src="https://earthchie.github.io/jquery.Thailand.js/jquery.Thailand.js/dependencies/JQL.min.js"></script>
                    <script type="text/javascript" src="https://earthchie.github.io/jquery.Thailand.js/jquery.Thailand.js/dependencies/typeahead.bundle.js"></script>
                    <link rel="stylesheet" href="https://earthchie.github.io/jquery.Thailand.js/jquery.Thailand.js/dist/jquery.Thailand.min.css">
                    <script type="text/javascript" src="https://earthchie.github.io/jquery.Thailand.js/jquery.Thailand.js/dist/jquery.Thailand.min.js"></script>
                    <script>
                        $.Thailand({
                            $district: $('#district'),
                            $amphoe: $('#amphoe'),
                            $province: $('#province'),
                            $zipcode: $('#zipcode'),
                            onDataFill: function(data) {
                                console.log(data)
                                $('#cnt').val('ไทย')
                            },
                            onLoad: function() {
                                console.info('Autocomplete is ready!');
                                $('#loader, .demo').toggle();
                            }
                        });
                    </script>
                    <script>
                        var file, reader = new FileReader();
                        reader.onloadend = function(e) {
                            if (e.target.error != null) {
                                showError("File " + file.name + " could not be read.");
                                return;
                            } else {
                                let formdata = $('#form').serializeArray()
                                console.log(formdata)
                                google.script.run
                                    .withSuccessHandler(showSuccess)
                                    .uploadFileToGoogleDrive(e.target.result, file.name,
                                        $('input#idCard').val(),
                                        $('#type').val(),
                                        $('#gen').val(),
                                        $('#gender').val(),
                                        $('input#firstname').val(),
                                        $('input#lastname').val(),
                                        $('input#nickname').val(),
                                        $('input#birthdate').val(),
                                        $('#religion').val(),
                                        $('#blood').val(),
                                        $('input#moo').val(),
                                        $('input#district').val(),
                                        $('input#amphoe').val(),
                                        $('input#province').val(),
                                        $('input#cnt').val(),
                                        $('input#zipcode').val(),
                                        $('input#ptel').val(),
                                        $('input#email').val(),
                                        $('input#line').val(),
                                        $('input#emergen').val(),
                                        $('input#emergtel').val(),
                                        $('#dm').is(":checked") ? 'เบาหวาน' : 'No',
                                        $('#HP').is(":checked") ? 'ความดันสูง' : 'No',
                                        $('#LP').is(":checked") ? 'ความดันต่ำ' : 'No',
                                        $('#heart').is(":checked") ? 'โรคหัวใจ' : 'No',
                                        $('#kidney').is(":checked") ? 'โรคไต' : 'No',
                                        $('#asma').is(":checked") ? 'หอบหืด' : 'No',
                                        $('input#hiegth').val(),
                                        $('input#weight').val(),
                                        $('input#chest').val(),
                                        $('input#waist').val(),
                                        $('input#hip').val(),
                                        $('input#neck').val(),
                                        $('input#fat').val(),
                                        $('input[name="shape"]:checked').attr('id').split('_')[1],
                                        $('input[name="bodyType"]:checked').attr('id').split('_')[1],
                                        $('#package').val(),
                                        $('input#team').val(),
                                        $('#shirtsize').val(),
                                        $('#consent').val(),
                                        $('#frequency').val(),
                                        $('input#rec3').val(),
                                        $('input#rec4').val(),
                                        $('input#rec5').val(),
                                        $('input#PicID').val(),
                                        $('input#PicURL').val()
                                    );
                            }
                        };

                        function showSuccess(e) {
                            if (e === "OK") {
                                $('#forminner').hide();
                                $('#success').show();
                                $('#image').hide();
                                //$('input#distance').val("");
                                //$('input#ebib').val("");
                            } else {
                                showError(e);
                            }
                        }

                        function restartForm() {
                            $('#form').trigger("reset");
                            $('#forminner').show();
                            $('#success').hide();
                            $('#button').show();
                        }

                        function submitForm() {
                            var idCard = $('input#idCard').val();
                            if (idCard.length === 0) {
                                showError("กรุณากรอกเลขประจำตัวประชาชนของท่านด้วย");
                                return;
                            }
                            var gender = $('#gender').find(':selected').val();
                                console.log(gender)
                            if(gender.length === 0){
                             showError("กรุณาเลือกเพศของท่าน");
                             return;
                             }
                             
                            var firstname = $('input#firstname').val();
                            if (firstname.length === 0) {
                                showError("กรุณากรอกชื่อของท่านด้วย");
                                return;
                            }
                            var lastname = $('input#lastname').val();
                            if (lastname.length === 0) {
                                showError("กรุณากรอกนามสกุลของท่านด้วย");
                                return;
                            }
                             var gen = $('#gen').val();
                              console.log(gen)
                              if (!gen || gen == '') {
                              showError("กรุณาระบุรุ่นของท่าน");
                              return;
                             }
                            
                            
                            var birthdate = $('input#birthdate').val();
                            if (birthdate.length === 0) {
                                showError("กรุณากรอกวันเดือนปีเกิดของท่านด้วย");
                                return;
                            }
                            var ptel = $('input#ptel').val();
                            if (ptel.length === 0) {
                                showError("กรุณากรอกหมายเลขโทรศัพท์ของท่านด้วย");
                                return;
                            }
                            var emergen = $('input#emergen').val();
                            if (emergen.length === 0) {
                                showError("กรุณากรอกชื่อผู้ติดต่อกรณีฉุกเฉิน");
                                return;
                            }
                            var emergtel = $('input#emergtel').val();
                            if (emergtel.length === 0) {
                                showError("กรุณากรอกเบอร์โทรติดต่อกรณีฉุกเฉิน");
                                return;
                            }
                            var district = $('input#district').val();
                            if (district.length === 0) {
                                showError("กรุณากรอกตำบลของท่าน");
                                return;
                            }
                            var files = $('#files')[0].files;
                            if (files.length === 0) {
                                showError("ท่านต้องส่งไฟล์ภาพของท่านด้วยครับ");
                                return;
                            }
                            var bodyType = $('input[name="bodyType"]:checked').attr('id').split('_')[1]
                            if (!bodyType || bodyType.length == 0) {
                                showError("ท่านต้องระบุ Body Type ของท่าน");
                                return;
                            }
                            var shape = $('input[name="shape"]:checked').attr('id').split('_')[1]
                            if (!shape || shape.length == 0) {
                                showError("ท่านต้องระบุตำแหน่งการสะสมไขมันของท่าน");
                                return;
                            }
                            var consent = $('#consent').val();
                            console.log(consent)
                            if (consent != 'YES') {
                                showError("กรุณากดการตกลงยินยอมให้ข้อมูลด้วยครับ");
                                return;
                            }
                            
                             
                            var frequency = $('#frequency').find(':selected').val();
                                 console.log(frequency)
                            if(frequency.length === 0){
                            showError("กรุณาเลือกแจ้งความถี่ของการออกกำลังกายของท่าน");
                            return;
                            } 


                            document.getElementById("button").style.display = "none"
                            file = files[0];
                            if (file.size > 1024 * 1024 * 20) {
                                showError("The file size should be < 20 MB. ");
                                return;
                            }
                            showMessage("...กำลังบันทึกระเบียนทันตกรรมให้ท่าน...");
                            reader.readAsDataURL(file);
                        }

                        function showError(e) {
                            Swal.fire({
                                title: 'ขออภัย!',
                                text: e,
                                icon: 'error',
                                confirmButtonText: 'รับทราบ'
                            })
                        }

                        function showMessage(e) {
                            Swal.fire({
                                title: 'กำลังดำเนินการส่งข้อมูลให้ท่าน!',
                                text: 'กรุณาจนกระทั่งระบบแจ้งเตือนการสมัครสำเร็จ',
                                icon: 'info',
                                confirmButtonText: 'รับทราบ'
                            })
                        }

                        document.getElementById("files").onchange = function() {
                            var reader = new FileReader();
                            reader.onload = function(e) {
                                document.getElementById("image").src = e.target.result;
                                $('#image').show();
                            };
                            reader.readAsDataURL(this.files[0]);
                        };
                    </script>
                    <script src="//cdn.jsdelivr.net/npm/sweetalert2@10"></script>
                    <script>
                        $(document).ready(function() {


                            $('#idCard').on('keyup', function() {
                                if ($.trim($(this).val()) != '' && $(this).val().length == 13) {
                                    id = $(this).val().replace(/-/g, "");
                                    var result = Script_checkID(id);
                                    if (result === false) {
                                        Swal.fire({
                                            position: 'center',
                                            icon: 'error',
                                            title: '<font size=5 color=red>รูปแบบเลขบัตรประชาชนไม่ถูกต้อง</font>',
                                            text: 'กรุณากรอกให้ถูกต้อง',
                                            // showConfirmButton: true,
                                            confirmButtonText: '<font size=5>รับทราบ</font>'
                                                // timer: 1500
                                        })
                                        uidCard.value = ""
                                    } else {
                                        google.script.run.withSuccessHandler(updateData).getCode(uidCard.value);
                                    }
                                } else {
                                    $('span.error').removeClass('true').text('');
                                }
                            })
                        });

                        function Script_checkID(id) {
                            if (!IsNumeric(id)) return false;
                            if (id.substring(0, 1) == 0) return false;
                            if (id.length != 13) return false;
                            for (i = 0, sum = 0; i < 12; i++)
                                sum += parseFloat(id.charAt(i)) * (13 - i);
                            if ((11 - sum % 11) % 10 != parseFloat(id.charAt(12))) return false;
                            return true;
                        }

                        function IsNumeric(input) {
                            var RE = /^-?(0|INF|(0[1-7][0-7]*)|(0x[0-9a-fA-F]+)|((0|[1-9][0-9]*|(?=[\.,]))([\.,][0-9]+)?([eE]-?\d+)?))$/;
                            return (RE.test(input));
                        }
                    </script>
                    <script>
                        function updateData(data) {
                            console.log(data)
                            if (data) {
                                Swal.fire({
                                    position: 'center',
                                    icon: 'info',
                                    title: '<a href="https://script.google.com/macros/s/AKfycby9_MZjZhl64PpYu-CTjxnWNze_j2LLdWp7cgWQ9x-4Kpo6C76F/exec"><B><font size=5 color=#3366ff>เลขบัตรประชาชนนี้ลงทะเบียนแล้วกรุณาตรวจสอบที่นี่</font></B></a>',
                                    text: 'คลิกที่ลิงค์ด้านบนนี้',
                                    confirmButtonText: '<font size=5>รับทราบ</font>'
                                        //showConfirmButton: true,
                                        //timer: 5000
                                })
                            }
                        }
                    </script>
                    <script>
                        var uidCard = document.getElementById("idCard")
                        document.getElementById("form").addEventListener("submit", saveData)

                        function saveData() {
                            event.preventDefault()
                            var data = {
                                idCard: uidCard.value,
                            }
                            google.script.run.withSuccessHandler(success).recordData(data)
                        }

                        function success() {
                            uidCard.value = ""
                        }
                    </script>
                    <script>
                        $(document).ready(function() {

                            $("#gen").select2({
                                theme: "bootstrap-5",
                                width: '100%'
                            });
                        });

                        $('#upload-btn').on('click', () => $('#imgUpload').click())
                    </script>
              
           
        
    </div>
    </div>
    </div>
</body>

</html>

Last updated