取得 欄位解釋的原始資料
$title_ary=array();
foreach ($column as $val) {
$title_ary[] = $val['field'];
}
$title_ary 會有如
['年級 & " 年" & 班級 & "班"', '畢業年月|R#/##', ...]
$tindex=0;
$textbank=array();
$question=array();
$findex=0;
每一顯示欄位可用 & 結合多個 文字和資料庫中的欄位
$tindex是文字的索引,$findex是資料庫欄位的索引
所以範例中 年級 的 $findex=0 班級 的 $findex=1 畢業年月=2
"年"的 tindex=0 "班"的 $tindex=1
以下列方式處理$title_ary成 $field_ary、$textbank 和 $field_modifier;
foreach($title_ary as $t) {
$rr = array();
$ary = explode('&',$t);
foreach ($ary as $ar) {
$ar = trim($ar); //判斷是文字還是欄位
if (substr($ar,0,1)=='"' && substr($ar,-1)=='"') {
$textbank[$tindex] = substr($ar,1,strlen($ar)-2);
if (substr($textbank[$tindex],0,1)=='@') {
$aa = explode('?',$textbank[$tindex]);
$question[] = array(
'title'=> substr($aa[0],1),
'default'=> $aa[1],
'tindex'=> $tindex
);
}
$rr[] = 'text_'.$tindex;
$tindex++;
} else {
$pos = mb_strpos($ar,'|',0,'utf8');
if ($pos>0) {
$filters = mb_substr($ar,$pos+1,255,'utf8');
$tags = explode('|',$filters);
$field_modifier[$findex]=$tags;
$fname= mb_substr($ar,0,$pos,'utf8');
} else {
$fname=$ar;
}
$filed_name = array_search($fname,$titles_arr);
if ($filed_name)
$rr[] = $filed_name;
else
$rr[] = $fname;
}
$findex++;
}
$field_ary[] = $rr;
}
處理後
field_ary[0] = array('smb_grad', 'text_0', 'smb_class','text_1');
field_ary[1] = array('stud_gradym');
//畢業年月會轉成英文stud_gradym
這些將傳送給LIB 裡的 sxs.stud_list.php處理
沒有留言:
張貼留言