//用$i做第一個索引,這裡先設初始值 $i=0; //設定二維陣列變數的初始值 $list_ebook=""; //用迴圈一筆一筆抓出資料庫的數據 while($ebook = $xoopsDB->fetchArray($result)){ //將抓出的數據陣列,放到一維陣列中 $list_ebook[$i]=$ebook; //索引值+1 $i++; } //將此陣列套用到樣板標籤 list_ebook $xoopsTpl->assign('list_ebook' , $list_ebook); ``` ### 三、 smarty迴圈:套用二維陣列變數的樣板標籤 1. 做好二維陣列並套用到樣板後,可以利用<{foreach}>的方式來一筆一筆讀出陣列值:
連結名稱 ``` 2. 流程控制是利用$op,所以需傳遞一個op變數,以便告訴程式接下來要執行什麼動作。 3. 此外,還要傳遞流水號,如此,才能知道要刪除哪一筆資料(編號請用樣板標籤): ``` 刪除 ``` ### 六、 在php檔的流程控制中加入刪除 1. 一旦有設定一組op的動作(如op=delete\_ebook),接收端(main.php)就必須在流程控制的switch中加入一組 case "delete\_ebook": 的對應動作。 ``` //若$op=del_ebook時 case "del_ebook": //執行del_ebook()函數以刪除資料 del_ebook($ebook_sn); //刪除後轉向回自己這頁 header("location:{$_SERVER['PHP_SELF']}"); //停止程式 exit; //跳出流程(基本上執行不到...) break; ``` 2. 由於del\_ebook()需要傳入期刊編號$ebook\_sn,此編號用get方式傳來,但未來易可能從post方式傳來,故在流程控制之前,可先產生$ebook\_sn的初始值: ``` $ebook_sn=empty($_REQUEST['ebook_sn'])?"":intval($_REQUEST['ebook_sn']); ``` 3. 這是三元一次式的寫法:(條件)?真:假; 4. intval()用來強制數字化,用$\_REQUEST則可接收來自get、post、cookie的變數。 ### 七、 刪除資料庫資料 1. 在資料庫中要刪除資料的SQL語法: ``` delete from 資料表where 條件 ``` 2. 執行刪除或更新等動作時,需用 $xoopsDB->queryF($sql) 來強制執行 SQL 語法。 ### 八、 加入確認後刪除 1. 先修改原先的刪除連結,改為執行javascript函數 ``` 刪除 ``` 2. 在樣板中,加入以下javascript函數語法(需在執行之前)
刪除 ``` ### 六、 在php檔的流程控制中加入刪除 1. 一旦有設定一組op的動作(如op=delete\_ebook),接收端(main.php)就必須在流程控制的switch中加入一組 case "delete\_ebook": 的對應動作。 ``` //若$op=del_ebook時 case "del_ebook": //執行del_ebook()函數以刪除資料 del_ebook($ebook_sn); //刪除後轉向回自己這頁 header("location:{$_SERVER['PHP_SELF']}"); //停止程式 exit; //跳出流程(基本上執行不到...) break; ``` 2. 由於del\_ebook()需要傳入期刊編號$ebook\_sn,此編號用get方式傳來,但未來易可能從post方式傳來,故在流程控制之前,可先產生$ebook\_sn的初始值: ``` $ebook_sn=empty($_REQUEST['ebook_sn'])?"":intval($_REQUEST['ebook_sn']); ``` 3. 這是三元一次式的寫法:(條件)?真:假; 4. intval()用來強制數字化,用$\_REQUEST則可接收來自get、post、cookie的變數。 ### 七、 刪除資料庫資料 1. 在資料庫中要刪除資料的SQL語法: ``` delete from 資料表where 條件 ``` 2. 執行刪除或更新等動作時,需用 $xoopsDB->queryF($sql) 來強制執行 SQL 語法。 ### 八、 加入確認後刪除 1. 先修改原先的刪除連結,改為執行javascript函數 ``` 刪除 ``` 2. 在樣板中,加入以下javascript函數語法(需在執行之前)
//若$op=del_ebook時 case "del_ebook": //執行del_ebook()函數以刪除資料 del_ebook($ebook_sn); //刪除後轉向回自己這頁 header("location:{$_SERVER['PHP_SELF']}"); //停止程式 exit; //跳出流程(基本上執行不到...) break; ``` 2. 由於del\_ebook()需要傳入期刊編號$ebook\_sn,此編號用get方式傳來,但未來易可能從post方式傳來,故在流程控制之前,可先產生$ebook\_sn的初始值: ``` $ebook_sn=empty($_REQUEST['ebook_sn'])?"":intval($_REQUEST['ebook_sn']); ``` 3. 這是三元一次式的寫法:(條件)?真:假; 4. intval()用來強制數字化,用$\_REQUEST則可接收來自get、post、cookie的變數。 ### 七、 刪除資料庫資料 1. 在資料庫中要刪除資料的SQL語法: ``` delete from 資料表where 條件 ``` 2. 執行刪除或更新等動作時,需用 $xoopsDB->queryF($sql) 來強制執行 SQL 語法。 ### 八、 加入確認後刪除 1. 先修改原先的刪除連結,改為執行javascript函數 ``` 刪除 ``` 2. 在樣板中,加入以下javascript函數語法(需在執行之前)
$ebook_sn=empty($_REQUEST['ebook_sn'])?"":intval($_REQUEST['ebook_sn']); ``` 3. 這是三元一次式的寫法:(條件)?真:假; 4. intval()用來強制數字化,用$\_REQUEST則可接收來自get、post、cookie的變數。 ### 七、 刪除資料庫資料 1. 在資料庫中要刪除資料的SQL語法: ``` delete from 資料表where 條件 ``` 2. 執行刪除或更新等動作時,需用 $xoopsDB->queryF($sql) 來強制執行 SQL 語法。 ### 八、 加入確認後刪除 1. 先修改原先的刪除連結,改為執行javascript函數 ``` 刪除 ``` 2. 在樣板中,加入以下javascript函數語法(需在執行之前)
delete from 資料表where 條件 ``` 2. 執行刪除或更新等動作時,需用 $xoopsDB->queryF($sql) 來強制執行 SQL 語法。 ### 八、 加入確認後刪除 1. 先修改原先的刪除連結,改為執行javascript函數 ``` 刪除 ``` 2. 在樣板中,加入以下javascript函數語法(需在執行之前)
刪除 ``` 2. 在樣板中,加入以下javascript函數語法(需在執行之前)
// 假如有流水號(更新模式) if($ebook_sn){ // 先加入資料表前置字串 $tbl=$xoopsDB->prefix('ebook'); // 讀取指定流水號的所有資料 $sql="select * from $tbl where $ebook_sn='$ebook_sn'"; // 送出執行,執行失敗則停止,並秀出原因 $result=$xoopsDB->query($sql) or die(mysql_error()); // 利用list()將得到的一筆結果,四個欄位值,分別塞入四個指定變數中。 list($ebook_sn,$ebook_title,$ebook_post_date,$ebook_publish_date) = $xoopsDB->fetchRow($result); // 設定$op值為 update_ebook $op="update_ebook"; // 將投稿截止日的日期轉為時間戳記 $ebook_post_date=strtotime($ebook_post_date); // 將發行日的日期轉為時間戳記 $ebook_publish_date=strtotime($ebook_publish_date); // 若沒有傳入流水號(新增模式) }else{ // 標題和編號初始值均為空值 $ebook_title=$ebook_sn=""; // 投稿截止日設為現在時間 $ebook_post_date=time(); // 發行日設為現在時間 $ebook_publish_date=time(); // 設定$op值為insert_ebook $op="insert_ebook"; } ``` 6. op的值記得改為變數,變根據不同情形,使用不同op。另加入ebook\_sn的隱藏欄位,以便將流水號帶給下一個動作。 ``` $form->addElement(new XoopsFormHidden('ebook_sn', $ebook_sn)); $form->addElement(new XoopsFormHidden('op', $op)); ``` ### 十、 編輯時無須秀出列表 1. 修改樣板檔,在列出所有期刊列表的語法前後,利用<{if $list\_ebook}><{/if}>將之包起來,如此,只有在有傳入$list\_ebook二維陣列時,才會出現列表。 2. 編輯時,並不會產生$list\_ebook陣列,故列表剛好可以隱藏,無須出現。 ### 十一、 更新資料庫資料 1. 在流程新增一組update\_ebook的流程,並建立update\_ebook函數 2. 在資料庫中要更新資料的SQL語法: ``` update 資料表 set 欄位1='值1' , 欄位2='值2' , … where 條件 ``` ### 十二、 BootStrap按鈕 1. 在<a>或<button>標籤中,加入 class="btn" 可使用bootstrap的按鈕風格 2. btn-mini 可以讓按鈕縮小,另有btn-small或btn-large 3. btn-primary 藍色按鈕,用在主功能按鈕,例如「送出」、「儲存」、「查詢」 4. btn-warbing 黃色按鈕,有警告意味,例如「修改」 5. btn-danger 紅色按鈕,較重要或危險之動作,例如「刪除」 6. 另有btn-success 綠色按鈕及btn-info淺藍色按鈕可套用。
$form->addElement(new XoopsFormHidden('ebook_sn', $ebook_sn)); $form->addElement(new XoopsFormHidden('op', $op)); ``` ### 十、 編輯時無須秀出列表 1. 修改樣板檔,在列出所有期刊列表的語法前後,利用<{if $list\_ebook}><{/if}>將之包起來,如此,只有在有傳入$list\_ebook二維陣列時,才會出現列表。 2. 編輯時,並不會產生$list\_ebook陣列,故列表剛好可以隱藏,無須出現。 ### 十一、 更新資料庫資料 1. 在流程新增一組update\_ebook的流程,並建立update\_ebook函數 2. 在資料庫中要更新資料的SQL語法: ``` update 資料表 set 欄位1='值1' , 欄位2='值2' , … where 條件 ``` ### 十二、 BootStrap按鈕 1. 在<a>或<button>標籤中,加入 class="btn" 可使用bootstrap的按鈕風格 2. btn-mini 可以讓按鈕縮小,另有btn-small或btn-large 3. btn-primary 藍色按鈕,用在主功能按鈕,例如「送出」、「儲存」、「查詢」 4. btn-warbing 黃色按鈕,有警告意味,例如「修改」 5. btn-danger 紅色按鈕,較重要或危險之動作,例如「刪除」 6. 另有btn-success 綠色按鈕及btn-info淺藍色按鈕可套用。
update 資料表 set 欄位1='值1' , 欄位2='值2' , … where 條件 ``` ### 十二、 BootStrap按鈕 1. 在<a>或<button>標籤中,加入 class="btn" 可使用bootstrap的按鈕風格 2. btn-mini 可以讓按鈕縮小,另有btn-small或btn-large 3. btn-primary 藍色按鈕,用在主功能按鈕,例如「送出」、「儲存」、「查詢」 4. btn-warbing 黃色按鈕,有警告意味,例如「修改」 5. btn-danger 紅色按鈕,較重要或危險之動作,例如「刪除」 6. 另有btn-success 綠色按鈕及btn-info淺藍色按鈕可套用。
進階搜尋
173人線上 (12人在瀏覽線上書籍)
會員: 0
訪客: 173