W6

 第六堂

課程內容

  • 目標:將前端網頁連結到後端資料庫

    1. nchu-mis-html5-blogger(more plugins)→Tabletop.js→範例資料

  • 前情提點

    1. google試算表內的電話要從數值改成純文字,開頭才可以存在0
    2. 要記得先把檔案發佈到網路上
    3. var publicSpreadsheetUrl = '網址' → 把/d/後面改成試算表序號

  • 網頁載入過程

    1. window.addEventListener('DOMContentLoaded', init) → 整個網頁載入後再執行init
    2. key: publicSpreadsheetUrl → 連結到SpreadsheetUrl的網址,載入google試算表的內容
    3. simpleSheet: true → if成功載入
    4. callback: showInfo → 執行showInfo (callback→function1執行完後再進行function2)
    5. alert('Successfully processed!') → 跳出警示對話框
    6. console.log(data) → 載入各個data
    7. for (i = 0; i < data.length; i++ ) →  把原本有i的地方都改成 'data[i].表格標題

課堂心得

        今天的課程主要是為了要建立我們前、後端資料的概念,但因為後端資料庫要學的範圍太多,所以改成以google試算表來建立簡易的資料庫。

        一開始我們先用了老師教學網頁裡面Tabletop的範例資料,引出了publicSpreadsheetUrl = '試算表網址',讓我們的網頁程式可以成功連結到我們後端的google試算表,接著在用for迴圈的概念將我們試算表內的data引用到card內各種title、picture和content,如此一來,我們的網頁就不再像上次一樣是死的,僅僅是將我們要呈現的內容丟在程式裡,而是變成一種活的資料,可以自由引用我們所需要範圍內的data,醬如果以後數據資料越來越多,也不會讓我們的程式看起來很長很複雜~

          課堂練習(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>

留言

這個網誌中的熱門文章

W2