国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

利用jqgrid+加mysql的text類型實現簡單自定義數據模型

2024-05-04 21:49:02
字體:
來源:轉載
供稿:網友

下面來看一個關于利用jqgrid+加mysql的text類型實現簡單自定義數據模型例子,希望對各位有幫助.

有的時候,我們做東西可能速度和安全在前期并不是我們考慮的重點,數據的靈活性可能對于一個不成熟的系統更加重要,這里我使用thinkphp+mysql+jqgrid做了一個簡單的自定義數據模型,簡單總結一下.

以前我也寫過一個自定義模型:php一種不增加字段的自定義表單實現,但是當時因為沒有jqgrid這樣比較好用的工具,所以當時那個還是比較麻煩,這次當然也是不增加字段的,利用數據的text類型加json數據,實現虛擬的“表”,聽到這里,有的同學應該知道,如果我們使用mongodb其實做起來就更加的靈活和簡便,但是,因為這個東西比較小,就先這樣用著了.

首先功能特點,通過配置文件,動態配置字段的key,類型,排序,顯示,是否必填等等,比如圖片類型,定義為image即可,看一下配置文件,代碼如下:

  1. return array
  2.     //包名前綴 
  3.     'pack_pre' => 'Pack_'
  4.     //商品管理字段配置 
  5.     /** 
  6.      * key為字段索引、存儲字段 
  7.      * name為字段顯示名稱 
  8.      * required是否必填1是0不是 
  9.      * hidden:列表是否顯示,1隱藏,0顯示,此選項會影響搜索,但不影響編輯 
  10.      * type類型:<img,url,text>三種類型 
  11.      * 字段顯示順序與key的順序一致 
  12.     */ 
  13.     'goodsfield' => array
  14.         //id為系統保留字段 
  15.         //商品名 
  16.         'title' =>array
  17.             'name'    =>'商品名'
  18.             'hidden'  =>0, 
  19.             'required'=>1, 
  20.             'type'    =>'text'
  21.         ), 
  22.         //spu 
  23.         'spu' =>array
  24.             'name'    =>'spu'
  25.             'hidden'  =>0, 
  26.             'required'=>1, 
  27.             'type'    =>'text'
  28.         ), 
  29.         //圖片地址 
  30.         'image' =>array
  31.             'name'    =>'圖片地址'
  32.             'hidden'  =>0, 
  33.             'required'=>1, 
  34.             'type'    =>'img'
  35.         ), 
  36.         //url 
  37.         'url' =>array
  38.             'name'    =>'詳情地址'
  39.             'hidden'  =>0, 
  40.             'required'=>1, 
  41.             'type'    =>'url'
  42.         ), 
  43.     ), 
  44.     //以下兩個映射針對goodsfield而言 
  45.     //goods_info api map,無映射即使用原字段 
  46.     'goodsinfomap'=>array
  47.     ),//開源代碼Vevb.com 
  48.     //pack post api map,商品包下發amc字段映射無映射即使用原字段 
  49.     'map'=>array
  50.     ), 
  51. ); 

可以通過配置,非常方便修改,并一改全改,增刪改.

2,html的jqgrid代碼,代碼如下:

  1. jQuery("#goodsList").jqGrid({ 
  2.        url:'__APP__?m=Home&a=getList'
  3.     datatype: "json"
  4.     mtype: 'POST'
  5.        colNames:['ID',<{$feildname}>,'修改時間','操作'], 
  6.        colModel:[ 
  7.            {name:'id',width:25,index:'id',setGridHeight:"auto"}, 
  8.         <{$feildmap}> 
  9.         {name:'lastdotime',sortable:true}, 
  10.         {name:'edit',search:false,sortable:false}, 
  11.        ], 
  12.        rowNum:10, 
  13.        rowList:[10,20,30], 
  14.     multiselect:true,  //復選框 
  15.        pager: '#goodsPager'
  16.        sortname: 'lastdotime'
  17.     viewrecords: true
  18.     sortorder: "desc"
  19.     editurl:'__APP__?m=Home&a=oper',//添加修改操作url 
  20.     autowidth:true
  21.     height:'100%' 
  22. }); 

3,三個比較重要的函數,代碼如下:

  1. //獲取字段名稱 
  2. function feild_name($feild){ 
  3.     $fields = C($feild); 
  4.     $feild = ''
  5.     foreach($fields as $val){ 
  6.         $feild .="'".$val['name']."',"; 
  7.     } 
  8.     $feild = rtrim($feild,','); 
  9.     return $feild
  10. //獲取字段字典 
  11. function feild_map($feild){ 
  12.     $fields = C($feild); 
  13.     $feildmap =''
  14.     foreach($fields as $key=>$val){ 
  15.         $feildmap .= '{name:\''.$key.'',sortable:false,editable:true'
  16.         if(1==$val['hidden']){ 
  17.             $feildmap .=',hidedlg:true,hidden:true,editrules:{edithidden:true,'
  18.         }else
  19.             $feildmap .= ',editrules:{'
  20.         } 
  21.         if(1==$val['required']){ 
  22.             $feildmap .='required:true}'
  23.         }else
  24.             $feildmap .='required:false}'
  25.         } 
  26.         $feildmap .= '},'."\n"
  27.     } 
  28.     return $feildmap
  29. //獲取字段列表 
  30. function feild_list($feild,$array=array(),$row=array()){ 
  31.     $row = json_decode($row['value'],true); 
  32.     $fields = C($feild); 
  33.     foreach($fields as $key=>$val){ 
  34.         switch($val['type']){ 
  35.             case 'url':$array[]='<a href="'.$row[$key].'" style="color:#0018D1" target="_blank">'.$row[$key].'</a>';break
  36.             case 'img':$array[]='<img src="'.$row[$key].'" width="60" />';break
  37.             default:$array[] = $row[$key]; 
  38.         } 
  39.     } 
  40.     return $array

代碼沒有什么,就是通過json對象動態配置.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄石市| 嘉峪关市| 苍南县| 四川省| 平乡县| 岚皋县| 东兴市| 广昌县| 邳州市| 康平县| 高清| 分宜县| 桑植县| 漳浦县| 滁州市| 荆门市| 卢龙县| 铜梁县| 东乌珠穆沁旗| 拉孜县| 封开县| 景德镇市| 汉川市| 临夏县| 同江市| 灵璧县| 阜新市| 新营市| 文安县| 舒兰市| 葫芦岛市| 灵山县| 合山市| 宁乡县| 镇宁| 大英县| 永德县| 鸡泽县| 青河县| 鸡泽县| 册亨县|