创建菜单(存入数据库,显示在页面中,同步数据)
2018-04-12 19:52
671 查看
定义index方法,先调用getCurrentMp方法,判断mp是否为空
public function index(){ $mp = getCurrentMp(); if (empty($mp)) { $this->error('没有公众号在使用',U('mp/index')); } $data = M('mp_menu')->where("mp_id = {$mp['id']}")->order('id')->select(); // print_r($data); $data2 = $data; foreach ($data as $key1 => $value1) { foreach ($data2 as $key2 => $value2) { if($value1['index']==$value2['pindex']){ $data[$key1]['sub'][]=$value2; unset($data[$key2]); } } } // print_r($data); $this->assign('mpInfo',$mp); $this->assign('list',$data); $this->display(); }
public function menuedit(){ // $this->display(); $mp = getCurrentMp(); if (empty($mp)) { $this->ajaxReturn(array('error'=>true,'msg'=>'没有公众号在使用','url'=>U('mp/index'))); exit; } $data1 = I('post.data'); // print_r($data1); // exit; // $arr = array(); //$data1 是自定义菜单里的 $mp 是rh_mp数据库里的 foreach ($data1 as &$value) { //键名是自定义的,值是自定义菜单里的表单提交信息 // $row = array(); // $row['mp_id'] = $mp['id']; $value['mp_id'] = $mp['id']; // $row['index'] = $value['index']; // $row['pindex'] = $value['name']; // $row['content'] = $value['code']; // $row['type'] = $value['type']; // $row['sort'] = $value['sort']; // $arr[] = $row; } $model = M('mp_menu'); $model->where("mp_id={$mp['id']}")->delete(); // $ret = M('mp_menu')->addAll($arr); // $model->addAll($arr); $model->addAll($data1); //ajax返回的数据库里的信息($arr); // $this->ajaxReturn(array('error'=>false,'data'=>$data1)); // exit; $data2 = $data1; foreach ($data1 as $key1 => $value1) { foreach ($data2 as $key2 => $value2) { if($value1['id']==$value2['pid']){ $data1[$key1]['type']=''; $data1[$key1]['content']=''; break; } } unset($data1[$key1]['sort']); if($value1['type']=='event'){ $data1[$key1]['type'] = $value1['content']; $data[$key1]['content'] = 'K_'.rand(100,999); } } include APP_PATH .'LaneWeChat/lanewechat.php'; $ret = Menu::setMenu($data1); // file_put_contents('menu.txt',$ret); if($ret == true){ $this->ajaxReturn(array('msg'=>'创建菜单成功')); }else{ $this->ajaxReturn(array('msg'=>$ret)); } } //同步菜单 public function downmenu(){ $mp = $this->mp; $mp_id = $mp['id']; include APP_PATH . 'LaneWeChat/lanewechat.php'; $menu = Menu::getMenu($data); // print_r($menu); // // exit; // print_r($menu['menu']['button']); // exit; $menu = $menu['menu']['button']; $arr = array(); $index = 1; foreach ($menu as $key => &$value) { $value['mp_id']= $mp_id; $value['index'] = $index; $value['pindex'] = 0; $value['sort'] = $index; if(!empty($value['sub_button'])){ $value['type'] = '';//设置一级菜单,默认值 $value['content'] = '';//设置一级菜单,默认值 $sub_menu = $value['sub_button']; //把二级菜单入到变量$sub_menu unset($value['sub_button']); $arr[] = $value; $subindex = 1; foreach ($sub_menu as $subkey=>&$subvalue) { $subvalue['mp_id'] = $mp_id; $subvalue['index'] = $index . $subindex; $subvalue['pindex'] = $index; $subvalue['sort'] = $subindex; if($subvalue['type']== 'click'){ $subvalue['content'] = $subvalue['key']; unset($subvalue['key']); }else if($subvalue['type']=='view'){ $subvalue['content'] = $subvalue['url']; unset($subvalue['url']); }else { $subvalue['content'] = $subvalue['type']; $subvalue['type'] = 'event'; unset($subvalue['key']); } unset($subvalue['sub_button']); $arr[] = $subvalue; $subindex++; } }else{ if($value['type']== 'click'){ $value['content'] = $value['key']; unset($value['key']); }else if($value['type']=='view'){ $value['content'] = $value['url']; unset($value['url']); }else { $value['content'] = $value['type']; $value['type'] = 'event'; unset($value['key']); } unset($value['sub_button']); $arr[] = $value; } $index++; } // print_r($arr); // exit; $model = M('mp_menu'); $model->where("mp_id={$mp['id']}")->delete(); foreach ($arr as $key => $value) { $model->add($value); } $this->redirect('index'); }
相关文章推荐
- django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面
- asp数据转换为xml格式存入数据库 ,又从库中读取xml显示到页面
- 有关外键以及从外键表中拿出数据,显示页面同时将修改后的存入到数据库中
- ThinkPHP +AJAX 联动从数据库无刷新提取数据,显示在页面的下拉框时出错!
- struts1(10)----重数据库中取出数据显示在jsp页面上
- js创建10万行表格 页面显示10万行数据
- 如何从数据库调出数据显示到页面PHP+Mysql+Html(简单实例)
- MySQL入门--数据表的创建、显示指定数据库中的所有数据表
- 页面下拉框显示值,存入数据库的是id
- php从数据库读取菜单数据并树状显示
- Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步
- Spring boot分页显示数据库中数据(不刷新页面)
- 将数据库里面的数据遍历出来显示在jsp页面
- js创建10万行表格 页面显示10万行数据
- 打开页面从数据库读出数据显示到页面上的解决方法
- MySQL入门--创建数据表、显示指定数据库的数据表、查看数据表结构
- 从数据库提取数据通过jstl显示在jsp页面上
- 报表解决Excel导入数据不能根据显示值将实际值存入数据库的问题
- 使用XML、XSLT和XPath创建可排序、分页、重用的数据显示页面
- SolpartMenu的使用:(二)、在ASP.NET页面中使用SolpartMenu控件之动态的加载数据库中的数据来生成菜单