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); // 設為新的表單元素名
}
……
}

所以單選與複選,其表單元素名送回伺服器是不同的變數名:

  1. 單選時:$_POST['欄名']得到的是字串
  2. 複選時:$_POST['欄名']得到的是陣列

所以對單選與複選「全部選項未核取」須要賦予不同的定義:

單選:

  1. 未核取,欄值後送 0
  2. 欄值 0 ,代表未核取

複選:

  1. 全部選項未核取,欄值後送空字串
  2. 欄值 0 ,代表核取過欄值為 0 的選項