:::
4-3 修改編輯表單使之可以送出資料
- 修改
templates/create.tpl - 可上傳的表單基本結構:
<h2 class="my-4">文章編輯表單</h2> <form action="admin.php" method="POST" enctype="multipart/form-data"> <!-- 各種表單元件 --> <input type="hidden" name="op" value="store"> <button type="submit" class="btn btn-primary">提交</button> </form>action是指表單按下送出後,要將表單資料送往何處,此例會將變數送到admin.phpmethod則是表單傳遞方法,預設為get(通常用於搜尋),大部分會設成post- 若是要上傳檔案,務必加上
enctype="multipart/form-data" - 這裡放了一個隱藏欄位
<input type="hidden" name="op" value="store">用來告知admin.php要執行什麼動作 - 送出鈕一定要是
type="submit"才真能送出表單(放在<form></form>表單中的任何位置都可以)
常用表單元件
- 表單元件可以參考:https://bootstrap5.hexschool.com/docs/5.0/forms/form-control/
- 掌握幾個重點:
- 表單元件一定要有
name屬性,此name的值送出後會變成PHP的變數,用get送出,得到$_GET['xxx'],用post送出,得到$_POST['xxx'] - 我們通常用
class屬性來設定外觀或者是否必填 id屬性在設定是否必填時一定要有(通常是給 javascript抓取用)
- 表單元件一定要有
-
input (一般輸入框):
<input type="輸入框類型" class="form-control" name="輸入框name" id="輸入框ID" placeholder="提示用的佔位文字" value="預設值" /> -
textarea (大量文字框):
<textarea class="form-control" name="輸入框name" id="輸入框ID" placeholder="提示用的佔位文字" rows="行數" > 預設值 </textarea> radio單選或checkbox多選可參考:https://bootstrap5.hexschool.com/docs/5.0/forms/checks-radios/#inlineradio單選(行內用法)預設值用checked標出<div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="輸入框name" id="輸入框1ID" value="選項值1" checked> <label class="form-check-label" for="輸入框1ID">選項文字1</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="輸入框name" id="輸入框2ID" value="選項值2"> <label class="form-check-label" for="輸入框2ID">選項文字2</label> </div>checkbox多選(行內用法)預設值用checked標出,可多個,注意name要加上[]才能多選。<div class="form-check form-check-inline"> <input class="form-check-input" type="checkbox" name="輸入框name[]" id="輸入框1ID" value="選項值1" checked> <label class="form-check-label" for="輸入框1ID">選項文字1</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="checkbox" name="輸入框name[]" id="輸入框2ID" value="選項值2"> <label class="form-check-label" for="輸入框2ID">選項文字2</label> </div>-
select 下拉選單基本語法(https://bootstrap5.hexschool.com/docs/5.0/forms/select/):
<select class="form-select" name="輸入框name" id="輸入框ID"> <option selected>請選擇</option> <option value="值1">選項1</option> <option value="值2">選項2</option> <option value="值3">選項3</option> <option value="值4">選項4</option> </select>
4-2 根據不同動作自動載入相對應樣板