รวมคลิปสอนครู Apiwat Wongkanha

siri
โพสต์: 679
ลงทะเบียนเมื่อ: จันทร์ พ.ค. 25, 2020 9:57 am

Re: รวมคลิปสอนครู Apiwat Wongkanha

โพสต์ โดย siri » อังคาร ธ.ค. 22, 2020 1:03 am

Google Form การสร้างลำดับอัตโนมัติ เมื่อส่งฟอร์ม

youtu.be/F860RzXqBeA
https://www.youtube.com/watch?v=F860RzXqBeA

แบบที่ 1
=ARRAYFORMULA(IF(LEN(B:B),IF(ROW(B:B)=1,"ID",TEXT(ROW(A:A)-1,"0000"))))
แบบที่ 2
={"ลำดับที่";ARRAYFORMULA ("หอ." & text (ROW (B1:INDEX (B:B, COUNTA (B:B)-1)), "000"))}

**************************************************************

วิธีการใช้งานสคริปต์แบบใหม่ 2021 Google App Script New 2021

youtu.be/jTjSdqpeFFg
https://www.youtube.com/watch?v=jTjSdqpeFFg

GlideApps การทำแอปคำนวณอายุปัจจุบัน

youtu.be/cmgzQAJYwl0
https://www.youtube.com/watch?v=cmgzQAJYwl0

GlideApps การทำแอปคำนวณค่าดัชนีมวลกาย BMI

youtu.be/FfBhNQABnTo
https://www.youtube.com/watch?v=FfBhNQABnTo

siri
โพสต์: 679
ลงทะเบียนเมื่อ: จันทร์ พ.ค. 25, 2020 9:57 am

Re: รวมคลิปสอนครู Apiwat Wongkanha

โพสต์ โดย siri » จันทร์ ม.ค. 18, 2021 3:57 pm

Google Form การใส่เลขลำดับอัตโนมัติ เมื่อมีการกรอกฟอร์ม

youtu.be/az5eKkvdOiM
https://www.youtube.com/watch?v=az5eKkvdOiM

******************************

=ARRAYFORMULA(
IFS(
ROW(A:A)=1,"ลำดับที่",
LEN(A:A)=0,IFERROR(1/0),
LEN(A:A)>0,LEFT(CONCAT(REPT("0",5),ROW(A:A)-1),6)))

**************************************

siri
โพสต์: 679
ลงทะเบียนเมื่อ: จันทร์ พ.ค. 25, 2020 9:57 am

Re: รวมคลิปสอนครู Apiwat Wongkanha

โพสต์ โดย siri » อาทิตย์ ก.พ. 07, 2021 2:13 pm

EP 29 การแชทบอท แล้วให้บอทบันทึกข้อมูลลงใน Google Sheet อัตโนมัติ

youtu.be/FZzAhb0VAho
https://www.youtube.com/watch?v=FZzAhb0VAho

---------แบบที่ 1 ----------------------
var ss = SpreadsheetApp.openByUrl("ชีต URL");
var sheet = ss.getSheetByName("ชื่อชีต");
function doPost(e) {

var data = JSON.parse(e.postData.contents);
var userMsg = data.originalDetectIntentRequest.payload.data.message.text;
var values = sheet.getRange(2, 1, sheet.getLastRow(),sheet.getLastColumn()).getValues();
var userCommand = userMsg.split(",");
if(userCommand[0] == "เพิ่มข้อมูล"){
sheet.getRange(values.length+1,1).setValue(userCommand[1]);
sheet.getRange(values.length+1,2).setValue(userCommand[2]);
sheet.getRange(values.length+1,3).setValue(userCommand[3]);
var result = {
"fulfillmentMessages": [
{
"platform": "line",
"type": 4,
"payload" : {
"line": {
"type": "text",
"text": "เพิ่มข้อมูลเรียบร้อยแล้ว"
}}
},
{
"platform": "line",
"type": 4,
"payload" : {
"line": {
"type": "sticker",
"packageId": "2",
"stickerId": "179"
}}
}
]
}
var replyJSON = ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType.JSON);
return replyJSON;
}
}

siri
โพสต์: 679
ลงทะเบียนเมื่อ: จันทร์ พ.ค. 25, 2020 9:57 am

Re: รวมคลิปสอนครู Apiwat Wongkanha

โพสต์ โดย siri » อาทิตย์ ก.พ. 07, 2021 2:52 pm

Node-Red ep-06 การทำ Line chat bot โต้ตอบด้วย Message แบบต่างๆ

youtu.be/4KKIEmWYCGQ
https://www.youtube.com/watch?v=4KKIEmWYCGQ

*****************************************************************
การติดตั้ง ngrok https://www.youtube.com/watch?v=yiGHX...​
https://devdocs.line.me/files/sticker...​
-----เครดิต panuwat choobuakaw -------
var receive_msg = msg.payload;
if(receive_msg.events[0].message.type=="text"){
if(receive_msg.events[0].message.text=="สวัสดี"){
reply = {type:'text', text:"สวัสดีจ้า"};
}
else if(receive_msg.events[0].message.text=="sticker"){
reply = {
type: "sticker",
packageId: 11537,
stickerId: 52002744}
}
else if(receive_msg.events[0].message.text=="sound"){
reply = {
type: "audio",
originalContentUrl: "https://mokmoon.com/audios/line.mp3​",
duration: 1000 }
}
else if(receive_msg.events[0].message.text=="video"){
reply = {
type: "video",
originalContentUrl: "https://mokmoon.com/videos/Brown.mp4​",
previewImageUrl: "https://linefriends.com/img/bangolufs...​"}
}
else{
reply = {type:'text', text:"ไม่รู้จักเลยจ้า"}
}
}

var value = [receive_msg,reply];
msg.payload = value;
return msg;

siri
โพสต์: 679
ลงทะเบียนเมื่อ: จันทร์ พ.ค. 25, 2020 9:57 am

Re: รวมคลิปสอนครู Apiwat Wongkanha

โพสต์ โดย siri » พุธ ก.พ. 17, 2021 9:16 am

การสร้างฟอร์มด้วยสคริปต์ อัปโหลดไฟล์ แยกโฟลเดอร์ ใหม่ล่าสุด

youtu.be/jgLgMdgZvho
https://www.youtube.com/watch?v=jgLgMdgZvho

-----------------------------------------------------------------------------------------------

สร้างฟอร์มลงทะเบียนด้วยสคริปต์

code.gs
var SHEET_NAME = "xxx";//ชื่อชีต
var SCRIPT_PROP = PropertiesService.getScriptProperties();
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('forms.html').setTitle("Registration With Document");
}
function uploadFileToGoogleDrive(data, file, name, pid, email, tel) {

try {

var dropbox = "Received Files";
var folder = DriveApp.getFolderById('xxx');//ไอดีโฟลเดอร์
var contentType = data.substring(5, data.indexOf(';')),
bytes = Utilities.base64Decode(data.substr(data.indexOf('base64,') + 7)),
blob = Utilities.newBlob(bytes, contentType, file),
file = folder.createFolder([name, email].join(" ")).createFile(blob),
filelink = file.getUrl();
var lock = LockService.getPublicLock();
lock.waitLock(30000);

var doc = SpreadsheetApp.openById("xxx");//ไอดีสเปรดชีต
var sheet = doc.getSheetByName(SHEET_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) {
if (headers == "วันที่") {
row.push(new Date());
} else if (headers == "ชื่อ สกุล") {
row.push(name);
} else if (headers == "ตำแหน่ง") {
row.push(pid);
} else if (headers == "อีเมล") {
row.push(email);
} else if (headers == "เบอร์โทร") {
row.push(tel);
} else if (headers == "ลิ้งค์ไฟล์") {
row.push(filelink);
}

}
sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
return "OK";

} catch (f) {
return f.toString();
} finally {
lock.releaseLock();
}

}
function setup() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
SCRIPT_PROP.setProperty("xxx", doc.getId());//ไอดีสเปรดชีต
}


------------------------------------------------------------------------------------------

form.html

<!DOCTYPE html>
<html>
<head>
<base target="_blank">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>การสร้างฟอร์มลงทะเบียนด้วยสคริปต์</title>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ ... ze.min.css">
<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}
</style>
</head>
<body>

<form class="main" id="form" novalidate="novalidate" style="max-width: 480px;margin: 40px auto;">
<div id="forminner">
<div class="row">
<div class="col s12">
<h5 class="center-align teal-text">ฟอร์มลงทะเบียนอบรม</h5>
<p class="disclaimer">กรอกข้อมูลให้ครบสมบูรณ์ทุกช่อง.</p>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="name" type="text" name="Name" class="validate" required="" aria-required="true">
<label for="name">ชื่อ สกุล</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="pid" type="text" name="Pid" class="validate" required="" aria-required="true">
<label for="pid">ตำแหน่ง</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="email" type="email" name="Email" class="validate" required="" aria-required="true">
<label for="email">อีเมล</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="tel" type="tel" name="Tel" class="validate" required="" aria-required="true">
<label for="tel">เบอร์โทร</label>
</div>
</div>

<div class="row">
<div class="file-field input-field col s12">
<div class="btn">
<span>ไฟล์</span>
<input id="files" type="file">
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text" placeholder="เลือกไฟล์ที่จะทำการอัปโหลด">
</div>
</div>
</div>

<div class="row">
<div class="input-field col s6">
<button class="waves-effect waves-light btn submit-btn" type="submit" onclick="submitForm(); return false;">บันทึกข้อมูล</button>
</div>
</div>
<div class="row">
<div class="input-field col s12" id = "progress">
</div>
</div>
</div>
<div id="success" style="display:none">
<h5 class="left-align teal-text">การลงทะเบียน</h5>
<p>เสร็จเรียบร้อยแล้ว.</p>
<p class="center-align"><a class="btn btn-large" onclick="restartForm()" >เข้าลงทะเบียนใหม่</a></p>
</div>
</form>


<script src="https://cdnjs.cloudflare.com/ajax/libs/ ... "></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ ... "></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 {
google.script.run
.withSuccessHandler(showSuccess)
.uploadFileToGoogleDrive(e.target.result, file.name, $('input#name').val(),
$('input#pid').val(), $('input#email').val(), $('input#tel').val());
}
};

function showSuccess(e) {
if (e === "OK") {
$('#forminner').hide();
$('#success').show();
} else {
showError(e);
}
}

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

function submitForm() {

var files = $('#files')[0].files;

if (files.length === 0) {
showError("เลือกไฟล์ที่จะอัปโหลด");
return;
}

file = files[0];

if (file.size > 1024 * 1024 * 5) {
showError("The file size should be < 5 MB. ");
return;
}

showMessage("กำลังอัปโหลดข้อมูล..");

reader.readAsDataURL(file);

}

function showError(e) {
$('#progress').addClass('red-text').html(e);
}

function showMessage(e) {
$('#progress').removeClass('red-text').html(e);
}

$(document).ready(function() {
$('select').material_select();
});

</script>

</body>

</html>

siri
โพสต์: 679
ลงทะเบียนเมื่อ: จันทร์ พ.ค. 25, 2020 9:57 am

Re: รวมคลิปสอนครู Apiwat Wongkanha

โพสต์ โดย siri » อังคาร ก.พ. 23, 2021 1:24 am

วิธีการนำข้อมูลจาก Google Sheet ไปใช้งานในรูปแบบ JSON

youtu.be/suuZvktbtEA
https://www.youtube.com/watch?v=suuZvktbtEA

function doGet(e) {
var ss = SpreadsheetApp.openById('xxx')
var sheet = ss.getSheetByName('xxx')
return getUsers(sheet)
}

function getUsers(sheet) {
var data = {}
var dataArray = []
var rows = sheet.getRange(2,1,sheet.getLastRow()-1,sheet.getLastColumn()).getDisplayValues()
for(var i = 0; i<rows.length; i++){
var dataRow = rows
var record = {}
record['id'] = dataRow [0]
record['name'] = dataRow [1]
dataArray.push(record)
}
data.user = dataArray
var result = JSON.stringify(data)
return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON)
}

siri
โพสต์: 679
ลงทะเบียนเมื่อ: จันทร์ พ.ค. 25, 2020 9:57 am

Re: รวมคลิปสอนครู Apiwat Wongkanha

โพสต์ โดย siri » อังคาร ก.พ. 23, 2021 1:26 am

Line Bot EP04 เก็บข้อมูลผู้ใช้งานไว้ใน Google Sheet เมื่อเพิ่มบอตเป็นเพื่อน

youtu.be/pL565H0cPWg
https://www.youtube.com/watch?v=pL565H0cPWg

function doPost(e) {
var ss = SpreadsheetApp.openById("xxx");//แก้ไข
var sheet = ss.getSheetByName("xxx");//แก้ไข
var requestJSON = e.postData.contents;
var requestObj = JSON.parse(requestJSON).events[0];
var token = requestObj.replyToken;

if (requestObj.type === "follow") {
var userId = requestObj.source.userId;
var userProfiles = getUserProfiles(userId);

var lastRow = sheet.getLastRow();
sheet.getRange(lastRow + 1, 1).setValue(userId);
sheet.getRange(lastRow + 1, 2).setValue(userProfiles[0]);
sheet.getRange(lastRow + 1, 3).setValue(userProfiles[1]);
sheet.getRange(lastRow + 1, 4).setFormula("=image(C" + (lastRow + 1) + ")");

var replyText = "สวัสดีคุณ "+ userProfiles[0] + ", ยินดีต้อนรับเข้าสู่การใช้งานบอตนะครับ!!!";//แก้ไข
return replyMessage(token, replyText);
}
var userMessage = requestObj.message.text;
var replyText = userMessage;
return replyMessage(token, replyText);
}

function replyMessage(token, replyText) {
var url = "https://api.line.me/v2/bot/message/reply";
var lineHeader = {
"Content-Type": "application/json",
"Authorization": "Bearer xxx" //แก้ไข
};

var postData = {
"replyToken" : token,
"messages" : [{
"type" : "text",
"text" : replyText
}]
};

var options = {
"method" : "POST",
"headers" : lineHeader,
"payload" : JSON.stringify(postData)
};

try {
var response = UrlFetchApp.fetch(url, options);
}

catch (error) {
Logger.log(error.name + ":" + error.message);
return;
}

if (response.getResponseCode() === 200) {
Logger.log("Sending message completed.");
}
}
function getUserProfiles(userId) {
var url = "https://api.line.me/v2/bot/profile/" + userId;
var lineHeader = {
"Content-Type": "application/json",
"Authorization": "Bearer xxx" //แก้ไข
};

var options = {
"method" : "GET",
"headers" : lineHeader
};

var responseJson = UrlFetchApp.fetch(url, options);
var displayName = JSON.parse(responseJson).displayName;
var pictureUrl = JSON.parse(responseJson).pictureUrl;

return [displayName, pictureUrl];
}

siri
โพสต์: 679
ลงทะเบียนเมื่อ: จันทร์ พ.ค. 25, 2020 9:57 am

Re: รวมคลิปสอนครู Apiwat Wongkanha

โพสต์ โดย siri » อังคาร ก.พ. 23, 2021 1:28 am

พื้นฐานมือใหม่ WebApp บันทึกข้อมูลลงชีตเขียนคำสั่งอย่างไร

youtu.be/FnWM6QfPGTo
https://www.youtube.com/watch?v=FnWM6QfPGTo

วิธีการส่งไลน์แจ้งเตือน ตามวันและเวลาที่กำหนดเอง

youtu.be/UQKHUI19GkE
https://www.youtube.com/watch?v=UQKHUI19GkE

function myFunction() {
var token = 'xxx'
var ss = SpreadsheetApp.openById('xxx')
var sh = ss.getSheetByName('xxx')
var row = sh.getLastRow();

var today = Utilities.formatDate(new Date(), "GMT+7", "dd/MM/yyyy")
var time = Utilities.formatDate(new Date(), "GMT+7", "HH:mm")

for (i = 2; i <= row; i++) {
var date = Utilities.formatDate(sh.getRange(i, 1).getValue(), "GMT+7", "dd/MM/yyyy")
var timer = sh.getRange(i, 4).getValue()

if (today == date && time == timer) {
var msg1 = sh.getRange(i, 2).getValue() + '\n'
var msg2 = sh.getRange(i, 3).getValue() + '\n'
var message = '\n ชื่อ สกุล : ' + msg1 + ' เวร : ' + msg2
sendLineNotify(message, token)
}
}
}

function sendLineNotify(message, token) {
var options = {
"method": "post",
"payload": {
"message": message,
},
"headers": { "Authorization": "Bearer " + token }
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

siri
โพสต์: 679
ลงทะเบียนเมื่อ: จันทร์ พ.ค. 25, 2020 9:57 am

Re: รวมคลิปสอนครู Apiwat Wongkanha

โพสต์ โดย siri » อังคาร ก.พ. 23, 2021 1:29 am

การสร้างฟอร์มด้วยสคริปต์ อัปโหลดไฟล์ แยกโฟลเดอร์ ใหม่ล่าสุด

youtu.be/jgLgMdgZvho
https://www.youtube.com/watch?v=jgLgMdgZvho

code.gs
var SHEET_NAME = "xxx";//ชื่อชีต
var SCRIPT_PROP = PropertiesService.getScriptProperties();
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('forms.html').setTitle("Registration With Document");
}
function uploadFileToGoogleDrive(data, file, name, pid, email, tel) {

try {

var dropbox = "Received Files";
var folder = DriveApp.getFolderById('xxx');//ไอดีโฟลเดอร์
var contentType = data.substring(5, data.indexOf(';')),
bytes = Utilities.base64Decode(data.substr(data.indexOf('base64,') + 7)),
blob = Utilities.newBlob(bytes, contentType, file),
file = folder.createFolder([name, email].join(" ")).createFile(blob),
filelink = file.getUrl();
var lock = LockService.getPublicLock();
lock.waitLock(30000);

var doc = SpreadsheetApp.openById("xxx");//ไอดีสเปรดชีต
var sheet = doc.getSheetByName(SHEET_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) {
if (headers == "วันที่") {
row.push(new Date());
} else if (headers == "ชื่อ สกุล") {
row.push(name);
} else if (headers == "ตำแหน่ง") {
row.push(pid);
} else if (headers == "อีเมล") {
row.push(email);
} else if (headers == "เบอร์โทร") {
row.push(tel);
} else if (headers == "ลิ้งค์ไฟล์") {
row.push(filelink);
}

}
sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
return "OK";

} catch (f) {
return f.toString();
} finally {
lock.releaseLock();
}

}
function setup() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
SCRIPT_PROP.setProperty("xxx", doc.getId());//ไอดีสเปรดชีต
}
form.html
<!DOCTYPE html>
<html>
<head>
<base target="_blank">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>การสร้างฟอร์มลงทะเบียนด้วยสคริปต์</title>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ ... ze.min.css">
<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}
</style>
</head>
<body>

<form class="main" id="form" novalidate="novalidate" style="max-width: 480px;margin: 40px auto;">
<div id="forminner">
<div class="row">
<div class="col s12">
<h5 class="center-align teal-text">ฟอร์มลงทะเบียนอบรม</h5>
<p class="disclaimer">กรอกข้อมูลให้ครบสมบูรณ์ทุกช่อง.</p>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="name" type="text" name="Name" class="validate" required="" aria-required="true">
<label for="name">ชื่อ สกุล</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="pid" type="text" name="Pid" class="validate" required="" aria-required="true">
<label for="pid">ตำแหน่ง</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="email" type="email" name="Email" class="validate" required="" aria-required="true">
<label for="email">อีเมล</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="tel" type="tel" name="Tel" class="validate" required="" aria-required="true">
<label for="tel">เบอร์โทร</label>
</div>
</div>

<div class="row">
<div class="file-field input-field col s12">
<div class="btn">
<span>ไฟล์</span>
<input id="files" type="file">
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text" placeholder="เลือกไฟล์ที่จะทำการอัปโหลด">
</div>
</div>
</div>

<div class="row">
<div class="input-field col s6">
<button class="waves-effect waves-light btn submit-btn" type="submit" onclick="submitForm(); return false;">บันทึกข้อมูล</button>
</div>
</div>
<div class="row">
<div class="input-field col s12" id = "progress">
</div>
</div>
</div>
<div id="success" style="display:none">
<h5 class="left-align teal-text">การลงทะเบียน</h5>
<p>เสร็จเรียบร้อยแล้ว.</p>
<p class="center-align"><a class="btn btn-large" onclick="restartForm()" >เข้าลงทะเบียนใหม่</a></p>
</div>
</form>


<script src="https://cdnjs.cloudflare.com/ajax/libs/ ... "></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ ... "></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 {
google.script.run
.withSuccessHandler(showSuccess)
.uploadFileToGoogleDrive(e.target.result, file.name, $('input#name').val(),
$('input#pid').val(), $('input#email').val(), $('input#tel').val());
}
};

function showSuccess(e) {
if (e === "OK") {
$('#forminner').hide();
$('#success').show();
} else {
showError(e);
}
}

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

function submitForm() {

var files = $('#files')[0].files;

if (files.length === 0) {
showError("เลือกไฟล์ที่จะอัปโหลด");
return;
}

file = files[0];

if (file.size > 1024 * 1024 * 5) {
showError("The file size should be < 5 MB. ");
return;
}

showMessage("กำลังอัปโหลดข้อมูล..");

reader.readAsDataURL(file);

}

function showError(e) {
$('#progress').addClass('red-text').html(e);
}

function showMessage(e) {
$('#progress').removeClass('red-text').html(e);
}

$(document).ready(function() {
$('select').material_select();
});

</script>

</body>

</html>
to join this conversation on

siri
โพสต์: 679
ลงทะเบียนเมื่อ: จันทร์ พ.ค. 25, 2020 9:57 am

Re: รวมคลิปสอนครู Apiwat Wongkanha

โพสต์ โดย siri » อาทิตย์ ก.พ. 28, 2021 1:30 am

พื้นฐานมือใหม่ 07 WebApp การทำลิ้งค์เว็บแอปไปยังหน้าอื่น ๆ


youtu.be/pehN2AU4xfM
https://www.youtube.com/watch?v=pehN2AU4xfM

*******************************************************

function doGet(e) {
if(!e.parameter.page){
var htmlOutput = HtmlService.createTemplateFromFile('index')
return htmlOutput.evaluate()
}
return HtmlService.createTemplateFromFile(e.parameter['page']).evaluate()
}

function getUrl(){
var url = ScriptApp.getService().getUrl()
return url
}
------------------
<?var url = getUrl();?>
<a href="<?=url?>?page=page1"><input type="button" name="button" value="หน้า1"></a><br>
<a href="<?=url?>?page=page2"><input type="button" name="button" value="หน้า2"></a>
-----------------
<?var url = getUrl();?>
<a href="<?=url?>?page=index"><input type="button" name="button" value="กลับหน้าหลัก"></a>

ตอบกลับโพส

ย้อนกลับไปยัง “ไอที คอมพิวเตอร์ โปรแกรมมิ่ง โค้ดดิ่ง แอพพลิเคชั่น ML, AI, IOT, Microcontroller, Robot”