:::

4-3 上課範例:admin/index.php

001<?php
002 
003/*-----------引入檔案區--------------*/
004include_once "header_admin.php";
005 
006/*-----------function區--------------*/
007//contact編輯表單
008function contact_form($sn=""){
009    global $xoopsDB,$xoopsUser;
010 
011    //抓取預設值
012    if(!empty($sn)){
013        $DBV=get_contact($sn);
014    }else{
015        $DBV=array();
016    }
017 
018    //預設值設定
019 
020    //設定「tel」欄位預設值
021    $tel=(!isset($DBV['tel']))?"":$DBV['tel'];
022 
023    //設定「email」欄位預設值
024    $email=(!isset($DBV['email']))?"":$DBV['email'];
025 
026    //設定「name」欄位預設值
027    $name=(!isset($DBV['name']))?"":$DBV['name'];
028 
029    //設定「gsn」欄位預設值
030    $gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
031 
032    //設定「sn」欄位預設值
033    $sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
034 
035    //設定「birthday」欄位預設值
036    $birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
037 
038    //設定「zip」欄位預設值
039    $zip=(!isset($DBV['zip']))?"":$DBV['zip'];
040 
041    //設定「county」欄位預設值
042    $county=(!isset($DBV['county']))?"":$DBV['county'];
043 
044    //設定「city」欄位預設值
045    $city=(!isset($DBV['city']))?"":$DBV['city'];
046 
047    //設定「addr」欄位預設值
048    $addr=(!isset($DBV['addr']))?"":$DBV['addr'];
049 
050    $op=(empty($sn))?"insert_contact":"update_contact";
051 
052 
053  $jquery=get_jquery();
054 
055    $main="
056    $jquery
057  <script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
058    <script type='text/javascript'>
059  $(document).ready(function(){
060    $.post('ajax.php' , function(data){
061      $('#menu1').html(data);
062      $.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
063        $('#menu2').html(data);
064      });
065    });
066     
067    $('#menu1').change(function(){
068      $.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
069        $('#menu2').html(data);
070      });
071    });
072     
073    $('#AddrForm').twzipcode({
074      countyName: 'county',
075      areaName: 'city',
076      zipName: 'zip',
077      countySel: '$county',
078      areaSel: '$city',
079      zipSel: '$zip',
080      zipReadonly: false
081    });
082  });
083  </script>
084     
085    <form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm'>
086     
087    <table class='form_tbl'>
088 
089    <!--群組-->
090    <tr><td class='title' nowrap>群組</td>
091    <td class='col'>
092    <select id='menu1'></select>
093    <select name='gsn' id='menu2'></select>
094    </td></tr>
095 
096    <!--姓名-->
097    <tr><td class='title' nowrap>姓名</td>
098    <td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' ></td></tr>
099 
100 
101    <!--電話-->
102    <tr><td class='title' nowrap>電話</td>
103    <td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' ></td></tr>
104 
105    <!--信箱-->
106    <tr><td class='title' nowrap>信箱</td>
107    <td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' ></td></tr>
108     
109     
110    <!--生日-->
111    <tr><td class='title' nowrap>生日</td>
112    <td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' ></td></tr>
113 
114 
115    <!--地址-->
116    <tr><td class='title' nowrap>地址</td>
117    <td class='col'>
118    <div style='position:relative;'>
119   <span id='AddrForm'></span>
120   <input type='text' name='addr' size='30' value='{$addr}' id='addr'>
121  </div>
122  </td></tr>
123 
124    <tr>
125        <td class='bar' colspan='2'>
126 
127        <!--編號-->
128        <input type='hidden' name='sn' value='{$sn}'>
129 
130            <input type='hidden' name='op' value='{$op}'>
131            <input type='submit' value='儲存'>
132        </td>
133    </tr>
134    </table>
135    </form>";
136 
137    //raised,corners,inset
138    $main=div_3d("通訊錄管理",$main,"raised");
139 
140    return $main;
141}
142 
143 
144 
145//新增資料到contact中
146function insert_contact(){
147    global $xoopsDB,$xoopsUser;
148 
149 
150    $myts =& MyTextSanitizer::getInstance();
151    $_POST['tel']=$myts->addSlashes($_POST['tel']);
152    $_POST['email']=$myts->addSlashes($_POST['email']);
153    $_POST['name']=$myts->addSlashes($_POST['name']);
154    $_POST['birthday']=$myts->addSlashes($_POST['birthday']);
155    $_POST['zip']=$myts->addSlashes($_POST['zip']);
156    $_POST['county']=$myts->addSlashes($_POST['county']);
157    $_POST['city']=$myts->addSlashes($_POST['city']);
158    $_POST['addr']=$myts->addSlashes($_POST['addr']);
159 
160 
161    $sql = "insert into `".$xoopsDB->prefix("contact")."`
162    (`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
163    values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
164    $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
165 
166    //取得最後新增資料的流水編號
167    $sn = $xoopsDB->getInsertId();
168    return $sn;
169}
170 
171//更新contact某一筆資料
172function update_contact($sn=""){
173    global $xoopsDB,$xoopsUser;
174 
175 
176    $myts =& MyTextSanitizer::getInstance();
177    $_POST['tel']=$myts->addSlashes($_POST['tel']);
178    $_POST['email']=$myts->addSlashes($_POST['email']);
179    $_POST['name']=$myts->addSlashes($_POST['name']);
180    $_POST['birthday']=$myts->addSlashes($_POST['birthday']);
181    $_POST['zip']=$myts->addSlashes($_POST['zip']);
182    $_POST['county']=$myts->addSlashes($_POST['county']);
183    $_POST['city']=$myts->addSlashes($_POST['city']);
184    $_POST['addr']=$myts->addSlashes($_POST['addr']);
185 
186 
187    $sql = "update `".$xoopsDB->prefix("contact")."` set
188     `tel` = '{$_POST['tel']}' ,
189     `email` = '{$_POST['email']}' ,
190     `name` = '{$_POST['name']}' ,
191     `gsn` = '{$_POST['gsn']}' ,
192     `birthday` = '{$_POST['birthday']}' ,
193     `zip` = '{$_POST['zip']}' ,
194     `county` = '{$_POST['county']}' ,
195     `city` = '{$_POST['city']}' ,
196     `addr` = '{$_POST['addr']}'
197    where `sn` = '$sn'";
198    $xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
199    return $sn;
200}
201 
202//列出所有contact資料
203function list_contact($show_function=1){
204    global $xoopsDB , $xoopsModule , $isAdmin;
205     
206  //製作選項
207    $sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
208    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
209    while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
210    $cate_arr[]="'$gsn':'$title'";
211  }
212    $cate_option=implode(" , ",$cate_arr);
213 
214     
215    include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
216  $file="save.php";
217  $jeditable = new jeditable();
218  //$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
219  //$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
220  //$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
221   
222     
223 
224    $sql = "select * from `".$xoopsDB->prefix("contact")."` ";
225    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
226 
227    $function_title=($show_function)?"<th>功能</th>":"";
228 
229    $all_content="";
230 
231    while($all=$xoopsDB->fetchArray($result)){
232        //以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
233        foreach($all as $k=>$v){
234            $$k=$v;
235        }
236 
237        $fun=($show_function)?"
238        <td>
239        <a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
240        <a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
241        </td>":"";
242 
243    $jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
244    $jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
245    $jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
246 
247        $cate=get_contact_cate_all();
248 
249        $all_content.="
250        <tr>
251            <td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
252            <td id='name_{$sn}'>{$name}</td>
253            <td>{$tel}</td>
254            <td id='email_{$sn}'>{$email}</td>
255            <td>{$birthday}</td>
256            <td>{$zip}</td>
257            <td>{$county}</td>
258            <td>{$city}</td>
259            <td>{$addr}</td>
260            $fun
261        </tr>
262        ";
263    }
264 
265  $jeditable_set=$jeditable->render();
266   
267    //if(empty($all_content))return "";
268 
269    $add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
270 
271    //刪除確認的JS
272    $main="
273    $jeditable_set
274     
275    <script>
276    function delete_contact_func(sn){
277        var sure = window.confirm('確定刪除此資料?');
278        if (!sure)  return;
279        location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
280    }
281    </script>
282 
283    <table summary='list_table' id='tbl' style='width:100%;'>
284    <tr>
285        <th>群組</th>
286        <th>姓名</th>
287        <th>電話</th>
288        <th>信箱</th>
289        <th>生日</th>
290        <th>郵遞區號</th>
291        <th>縣市</th>
292        <th>鄉鎮市區</th>
293        <th>地址</th>
294        $function_title
295    </tr>
296 
297    <tbody>
298    $all_content
299    </tbody>
300 
301    <tr>
302        <td colspan=11 class='bar'>
303        {$add_button}
304        </td>
305    </tr>
306    </table>";
307 
308    //raised,corners,inset
309    $main=div_3d("",$main,"corners");
310 
311    return $main;
312}
313 
314 
315//以流水號取得某筆contact資料
316function get_contact($sn=""){
317    global $xoopsDB;
318    if(empty($sn))return;
319    $sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
320    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
321    $data=$xoopsDB->fetchArray($result);
322    return $data;
323}
324 
325//刪除contact某筆資料資料
326function delete_contact($sn=""){
327    global $xoopsDB , $isAdmin;
328    $sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
329    $xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
330}
331 
332 
333//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
334function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
335    global $xoopsDB , $xoopsModule;
336    $sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
337    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
338 
339    $prefix=str_repeat("&nbsp;&nbsp;" , $level);
340    $level++;
341 
342    $unselect=explode("," , $unselect_level);
343 
344    $main="";
345    while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
346        if($mode=="edit"){
347            $selected=($gsn==$default_parent_gsn)?"selected=selected":"";
348            $selected.=($gsn==$default_gsn)?"disabled=disabled":"";
349            $selected.=(in_array($level , $unselect))?"disabled=disabled":"";
350        }else{
351            $selected=($gsn==$default_gsn)?"selected=selected":"";
352            $selected.=(in_array($level , $unselect))?"disabled=disabled":"";
353        }
354        $main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
355        $main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
356 
357    }
358    return $main;
359}
360 
361 
362/*-----------執行動作判斷區----------*/
363$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
364$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
365$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
366$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
367 
368 
369switch($op){
370    /*---判斷動作請貼在下方---*/
371 
372  //新增資料
373  case "insert_contact":
374  $sn=insert_contact();
375  header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
376  break;
377 
378  //更新資料
379  case "update_contact":
380  update_contact($sn);
381  header("location: {$_SERVER['PHP_SELF']}");
382  break;
383 
384  //輸入表格
385  case "contact_form":
386  $main=contact_form($sn);
387  break;
388 
389  //刪除資料
390  case "delete_contact":
391  delete_contact($sn);
392  header("location: {$_SERVER['PHP_SELF']}");
393  break;
394 
395  //預設動作
396  default:
397  $main=list_contact();
398  break;
399 
400     
401    /*---判斷動作請貼在上方---*/
402}
403 
404/*-----------秀出結果區--------------*/
405module_admin_footer($main,0);
406 
407?>

:::

搜尋

QR Code 區塊

https%3A%2F%2Ftad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D756%26tbsn%3D26

書籍目錄

展開 | 闔起

線上使用者

39人線上 (4人在瀏覽線上書籍)

會員: 0

訪客: 39

更多…