「Etable/formType/checkbox」修訂間的差異
跳至導覽
跳至搜尋
| 第1行: | 第1行: | ||
[[分類:Etable]][[分類:LiteSite]] | [[分類:Etable]][[分類:LiteSite]] | ||
| − | '''formcheckbox.php'''中: | + | checkbox必須區別單選與複選的起因是'''formcheckbox.php'''中: |
:function render(){ | :function render(){ | ||
::…… | ::…… | ||
| 第10行: | 第10行: | ||
::…… | ::…… | ||
:} | :} | ||
| + | 所以單選與複選,其表單元素名送回伺服器是不同的變數名: | ||
| + | #單選時:$_POST['欄名']得到的是字串 | ||
| + | #複選時:$_POST['欄名']得到的是陣列 | ||
| + | 所以對單選與複選「全部選項未核取」須要賦予不同的定義: | ||
| + | |||
'''單選:''' | '''單選:''' | ||
#未核取,欄值後送 0 | #未核取,欄值後送 0 | ||
於 2024年5月5日 (日) 23:52 的修訂
checkbox必須區別單選與複選的起因是formcheckbox.php中:
- function render(){
- ……
- // 如果選項超過一個,而且表單元素名末尾不是[ ]
- if(count($this->getOptions())>1 && substr($this->getName(),-2,2)!="[]"){
- $newname=$this->getName()."[]"; // 表單元素名末尾加[ ]
- $this->setName($newname); // 設為新的表單元素名
- }
- ……
- }
所以單選與複選,其表單元素名送回伺服器是不同的變數名:
- 單選時:$_POST['欄名']得到的是字串
- 複選時:$_POST['欄名']得到的是陣列
所以對單選與複選「全部選項未核取」須要賦予不同的定義:
單選:
- 未核取,欄值後送 0
- 欄值 0 ,代表未核取
複選:
- 全部選項未核取,欄值後送空字串
- 欄值 0 ,代表核取過欄值為 0 的選項