線上書籍

Home

寫程式的一些觀念

一、頁面轉向的方式
  1. HTML 的轉址方法 <meta http-equiv="refresh" content="秒數;url=網址" />

     

  2. Javascript 的轉址方法 <script>document.location.href="網址";</script>

     

  3. PHP 的轉址方法
    前提,前面不可以有輸出 header('Location: 網址'); exit;

     

二、什麼時候有轉向
  1. 寫入、更新、刪除資料庫時
三、程式架構
  1. 列表:將某個主表的欄位顯示在頁面上(重要的欄位),資料多時,會用到分頁,而每筆記錄的列表,會有「新增」、「編輯」、「刪除」、「瀏覽」.....
    由於列表有顯示畫面,所以會使用 smarty 樣板引擎
  2. 表單:當按下「新增」、「編輯」時,系統會顯示表單,來收集資料
    由於新增與編輯的架構是一樣的,不同的是預設值,編輯會從「資料庫」撈資料,新增則使用預定的值
    這裡如果是新手沒有概念如何處理,請依照需求,一個一個寫出來,換句話就是寫一個「新增表單」與一個「編輯表單」,經過幾個案子後,自然能看出關聯,進而將二個合而為一,節省日後程式維護的時間
    由於表單有顯示畫面,所以會使用 smarty 樣板引擎
  3. 顯示單筆
    ......
  4. 寫入資料庫:表單將資料送出時,這時就需要將資料寫入資料庫,動作執行完畢,就需轉向,不然畫面什麼都不動作,使用者不曉得是否有執行,而按「重整」鍵,造成系統重覆執行寫入的動作
四、轉去那裡
  1. 通常是「列表」,為什麼?這個留到上課再來解釋
  2. 佈局: # ---- 目前網址 ---- $_SESSION['return_url'] = getCurrentUrl();

    getCurrentUrl():這是一個函數,用來擷取目前的網址
    $_SESSION['return_url']:$_SESSION[] 則是伺服端的全域變數,會一直存在到瀏覽器關閉為止

  3. 轉向: redirect_header($_SESSION['return_url'], 3, _BP_SUCCESS);

    這是我們自訂的函數,用來轉向,並通知使用者執行結果

五、程式流程 /*-----------流程區----------*/ switch ($op) { case "op_update_sort": //更新排序 #強制關除錯 ugm_module_debug_mode(0); echo op_update_sort(); exit; case "op_update_enable"://更新狀態 #強制關除錯 ugm_module_debug_mode(0); echo op_update_enable(); exit; case "op_delete"://刪除資料 #強制關除錯 ugm_module_debug_mode(0); echo op_delete(); exit; //新增資料 case "op_insert": op_insert(); redirect_header($_SESSION['return_url'], 3, _BP_SUCCESS); XoopsCache::clear(); exit; //輸入表單 case "op_form": op_form($sn); break; //預設動作 default: # ---- 目前網址 ---- $_SESSION['return_url'] = getCurrentUrl(); $op = "op_list"; op_list(); break; /*---判斷動作請貼在上方---*/ }