W6
第六堂
課程內容
- 目標:將前端網頁連結到後端資料庫
- nchu-mis-html5-blogger(more plugins)→Tabletop.js→範例資料
- 前情提點
- google試算表內的電話要從數值改成純文字,開頭才可以存在0
- 要記得先把檔案發佈到網路上
- var publicSpreadsheetUrl = '網址' → 把/d/後面改成試算表序號
- 網頁載入過程
- window.addEventListener('DOMContentLoaded', init) → 整個網頁載入後再執行init
- key: publicSpreadsheetUrl → 連結到SpreadsheetUrl的網址,載入google試算表的內容
- simpleSheet: true → if成功載入
- callback: showInfo → 執行showInfo (callback→function1執行完後再進行function2)
- alert('Successfully processed!') → 跳出警示對話框
- console.log(data) → 載入各個data
- for (i = 0; i < data.length; i++ ) → 把原本有i的地方都改成 'data[i].表格標題'
課堂心得
今天的課程主要是為了要建立我們前、後端資料的概念,但因為後端資料庫要學的範圍太多,所以改成以google試算表來建立簡易的資料庫。
一開始我們先用了老師教學網頁裡面Tabletop的範例資料,引出了publicSpreadsheetUrl = '試算表網址',讓我們的網頁程式可以成功連結到我們後端的google試算表,接著在用for迴圈的概念將我們試算表內的data引用到card內各種title、picture和content,如此一來,我們的網頁就不再像上次一樣是死的,僅僅是將我們要呈現的內容丟在程式裡,而是變成一種活的資料,可以自由引用我們所需要範圍內的data,醬如果以後數據資料越來越多,也不會讓我們的程式看起來很長很複雜~
- 課堂練習網址(test1):https://jsbin.com/ruziyobudu/edit?html,output
課堂練習(test2):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Tabletop.js範例程式</title>
<!-- 利用Tabletop.JS讀取Google Sheet https://github.com/jsoma/tabletop -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/tabletop.js/1.5.1/tabletop.min.js'></script>
<script type='text/javascript'>
// 取得網址裡的參數
function GetUrlVar(VarName)
{
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + VarName + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return "";
else
return results[1];
}
// 於Google Spreadsheet建立的範例資料為 https://docs.google.com/spreadsheets/d/e/2PACX-1vR9LivzlVjV3Mp9EOw0rCh46tDacBY6uQ8AT4k6ObLecvL8P-BpgKza9IOyGfFkP3tEdNSereSt8wxT/pubhtml
var publicSpreadsheetUrl = 'https://docs.google.com/spreadsheets/d/1e-2FL8XJOJVCeXtIz5Ff-10XNiZ65iKPCy6WtXtn8a0/pubhtml';
function init() {
Tabletop.init( { key: publicSpreadsheetUrl,
callback: showInfo,
simpleSheet: true } )
}
function showInfo(data, tabletop) {
// alert('Successfully processed!')
console.log(data);
var i = decodeURIComponent(GetUrlVar('pid'));
var str = '<img src="' +data[i].pics
document.getElementById("demo").innerHTML = data[i].title;
}
window.addEventListener('DOMContentLoaded', init)
</script>
<head>
<body>
</body>
</html>
留言
張貼留言