ThinkPHP菜鸟实现的增删改查
数据库:
效果
框架:easyui
控制器代码:::::::
<?php namespace HomeController; use ThinkController; class IndexController extends Controller { public function index(){ $this->display(); $this->red(); } // +++++++++++++++++++页面显示数据+++++++++++++++++++++ public function red(){ $User = M("Exltable"); // 实例化Data数据模型,这行的tinyphp为数据表后缀名称 $this->data = $User->select(); } // ------------------------页面显示数据--------------- //+++++++++++++++++++添加表格+++++++++++++++++++++++++++ public function addexl(){ header("Content-type: text/html; charset=utf-8"); //excel文件路径,我这里是项目根目录 $filename = "./excelfile/gjyt.xls";//表路径 $start_row = 2;//从第二行开始读取表信息 import("Org.Util.PHPExcel");//如果excel文件后缀名为.xls,导入这个类 import("Org.Util.PHPExcel.Reader.Excel5"); $php_reader = new PHPExcel_Reader_Excel5(); //载入文件 $filename = $this-> file_zh_cn_icvon($filename); $php_excel = $php_reader->load($filename);//获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推 // 循环多张sheet表 for($sheet_index=0;$sheet_index<1;$sheet_index++){ $currentSheet = $php_excel->getSheet($sheet_index); $allRow = $currentSheet->getHighestRow(); // 循环多行表格信息 for($currentRow = $start_row;$currentRow <= $allRow;$currentRow++){ //获取单元格的值 $station_name = (string)$currentSheet->getCell("A".$currentRow)->getValue(); $station_name1 = (string)$currentSheet->getCell("B".$currentRow)->getValue(); $station_name2 = (string)$currentSheet->getCell("C".$currentRow)->getValue(); $station_name3 = (string)$currentSheet->getCell("D".$currentRow)->getValue(); $station_name4 = (string)$currentSheet->getCell("E".$currentRow)->getValue(); // ++++++++++++++++++添加表数据++++++++++++++++ $User = M("Exltable"); $data["exl_usname"] = $station_name; $data["exl_chname"] =$station_name1; $data["exl_usurl"] =$station_name2; $data["exl_churl"] =$station_name3; $data["exl_text"] =$station_name4; $sql= $User->add($data); if(!$sql){ $result = $User->add(); // 写入数据到数据库 if($result){ // 如果主键是自动增长型 成功后返回值就是最新插入的值 $insertId = $result; $this->display(); } } // ------------------添加表数据----------------------- ob_flush(); flush(); } } } //——————————————添加表格—————————————————— function file_zh_cn_icvon($filename){ //windows环境下,文件名最好是有GBK转化为utf-8 if(IS_WIN){ return iconv("UTF-8", "GBK", $filename); } return $filename; } // ++++++++++++++++++++++++添加数据++++++++++++++++ public function edit(){ if(IS_POST){ $User = M("Exltable"); // 实例化User对象 $data["exl_usname"] = I("post.usname"); $data["exl_chname"] =I("post.chname"); $data["exl_usurl"] =I("post.usurl"); $data["exl_churl"] =I("post.churl"); $data["exl_text"] =I("post.text"); $Urls=$User->select(); foreach ($Urls as $val){ $usname=$val["exl_usname"]; $pname=$data["exl_usname"]; } if($usname != $pname){ $result= $User->add($data); } else if($pname==null){ $this->error("没有填写数据 "); } if($data){ if($result){ // 如果主键是自动增长型 成功后返回值就是最新插入的值 $insertId = $result; $this->redirect("/Home/Index/index",0); }else{ //错误页面的默认跳转页面是返回前一页,通常不需要设置 $this->error("已经有该名称"); } } } else if(IS_GET){ $this->display("index:index"); } } // ------------------------添加数据----------------- // ++++++++++++++++++++++++删除数据++++++++++++++++ public function delete(){ $Test = M("Exltable"); $ids = implode(",", I("post.ids")); $Test->delete($ids); } // ------------------------删除数据----------------- //++++++++++++++++++++修改数据+++++++++++++++++++ public function test() { $this->display("user:ajax"); } public function testcav(){ $User = M("Exltable"); if (IS_GET) { $id = I("get.id"); $map["exl_id"] = array("eq", $id); $obj = $User->where($map)->find(); echo json_encode($obj); } if(IS_POST){ $data["exl_id"]= I("post.exl_id"); $data["exl_usname"] = I("post.exl_usname"); $data["exl_chname"] = I("post.exl_chname"); $data["exl_usurl"] = I("post.exl_usurl"); $data["exl_churl"] = I("post.exl_churl"); $data["exl_text"] = I("post.exl_text"); $result= $User->save($data); if($result){ // 如果主键是自动增长型 成功后返回值就是最新插入的值 $insertId = $result; $this->redirect("/Home/Index/index",0); }else{ $this->error("没有填写信息",0); } } } //--------------------修改数据----------------- //++++++++++++++++++++查询++++++++++++++++++++++++++ //thinkphp 查询语言 // 1.普通查询 // 2.区间查询 // 3.组合查询 // 4.复合查询 // 5.统计查询 // 6.定位查询 // 7.SQL查询 // 8.动态查询 public function sele(){ if(IS_POST){ $User=M("Exltable"); $condition["exl_usname"] = array("like", "%".I("post.exl_usname")."%"); $condition["exl_chname"] = array("like", "%".I("post.exl_chname")."%"); $condition["exl_usurl"] = array("like", "%".I("post.exl_usurl")."%"); $condition["exl_churl"] = array("like", "%".I("post.exl_churl")."%"); $condition["exl_text"] = array("like", "%".I("post.exl_text")."%"); //查询数据库,数据存在输出。数据不存在,反馈信息 $count = $User->where($condition)->count(); $obj =$User->where($condition)->select(); echo json_encode(array("total"=>$count, "rows"=>$obj)); // $userarr = $User->select(); // var_dump($userarr); // $this->assign("userarr",$userarr); } else if(IS_GET){ } } //----------------------查询------------------------- //++++++++++++++++分页++++++++++++++++++++++ public function get_all(){ $list = get_date_grid("Exltable");//Exltabl数据库表名称 echo json_encode($list); } //----------------分页------------------------ //----------------------------------------------------------------------------- }
前台hrml代码:::::::::::::::::::::::::::::;
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Basic DataGrid - jQuery EasyUI Demo</title> <link rel="stylesheet" type="text/css" href="__PUBLIC__/jquery-easyui-1.5/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="__PUBLIC__/jquery-easyui-1.5/themes/icon.css"> <script type="text/javascript" src="__PUBLIC__/jquery-easyui-1.5/jquery.min.js"></script> <script type="text/javascript" src="__PUBLIC__/jquery-easyui-1.5/jquery.easyui.min.js"></script> <script type="text/javascript" src="__PUBLIC__/jquery-easyui-1.5/locale/easyui-lang-zh_CN.js" charset="utf-8"></script> <style> </style> </head> <body> <style> .select{ display: none; background: rgba(0,0,0,0.5); padding: 15px 20px;} </style> <!--表单--> <div id="" action="" method="" > <div style=""> <div id="tb" style="padding:2px 5px;"> <a href="javascript:void(0)" id="uplod" class="easyui-linkbutton" iconCls="icon-add" plain="true" onClick="uplod()">添加表信息</a> <a href="javascript:void(0)" id="openwin" class="easyui-linkbutton" iconCls="icon-add" plain="true" onClick="addPro()"></a> <a href="javascript:void(0)" id="updaten" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editPro()"></a> <a href="javascrtpt:void(0)" id="grid_pump_log" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="removePro()"></a> <a href="javascript:void(0)" id="select" class="easyui-linkbutton" data-options="iconCls:"icon-search",plain:true"></a> <form action="__URL__/sele" class="select" method="post"> <input type="text" name="exl_usname" id="exl_usname" placeholder="英文名称"/> <input type="text" name="exl_chname" id="exl_chname" placeholder="中文名称"/> <input type="text" name="exl_usurl" id="exl_usurl" placeholder="英文路径"/> <input type="text" name="exl_churl" id="exl_churl" placeholder="中文路径"/> <input type="text" name="exl_text" id="exl_text" placeholder="功能用途"/> <input type="button" id="selectinput" value="查询" name="" /> </form> </div> <!--查询--> </div> <table id="dg" title="数据表" style="width:100%;" data-options="rownumbers:true"> </table> </div> <!--添加--> <form method="post" id="win" class="easyui-window" title="添加数据" closed="true" style="width:600px;height:400px" data-options="rownumbers:true,singleSelect:true,pagination:true,url:"datagrid_data1.json",method:"get"" action="__URL__/edit";> <div class="easyui-layout" data-options="fit:true" > <ul data-options="region:"north",split:true" style="height:200px"> <li> 英文名称:<input type="text" value="" name="usname"/> </li> <li> 中文名称:<input type="text" value="" name="chname"/> </li> <li> 英文路径:<input type="text" value="" name="usurl"/> </li> <li> 中文路径:<input type="text" value="" name="churl"/> </li> <li> 功能用途:<textarea type="text" value="" name="text" ></textarea> </li> <li> <input type="submit" name=""/> </li> </ul> </div> </form> <!--修改--> <form method="post" id="formsav" action="__URL__/testcav" class="easyui-window" title="修改数据" closed="true" style="width:600px;height:400px"> <div data-options="fit:true" > <ul style="height:200px" data-options="region:"north",split:true" style="height:200px" name="upsav" id="sav"> <input type="text" value="" style="display: none" name="exl_id" /> <li>英文名称:<input type="text" value="" name="exl_usname" /></li> <li>中文名称:<input type="text" value="" name="exl_chname" /></li> <li>英文路径:<input type="text" value="" name="exl_usurl" /></li> <li>中文路径:<input type="text" value="" name="exl_churl" /></li> <li>功能用途:<textarea type="text" value="" name="exl_text" ></textarea></li> <li><input type="submit" id="upsav" name="" /></li> </ul> </div> </form> <script type="text/javascript"> //修改 function editPro(){ var row = $("#dg").datagrid("getSelected"); if(row){ $("#formsav").dialog("open").dialog("setTitle","修改"); $("#am").form("load",row); var data = {"exlid": row.exl_id}; var id= row.exl_id; $.ajax({ type:"get", url:"__URL__/testcav", data:{id:id}, dataType:"json", success:function(json, textStatus){ $("#formsav").form("load",{ "exl_id": json.exl_id, "exl_usname": json.exl_usname, "exl_chname": json.exl_chname, "exl_usurl":json.exl_usurl, "exl_churl":json.exl_churl, "exl_text": json.exl_text }); },error:function(XMLHttpRequest, textStatus, errorThrown) { relogin(XMLHttpRequest, textStatus, errorThrown); }}); } } //删除 function removePro() { var row = $("#dg").datagrid("getSelected"); if (row) { $.messager.confirm( "提示", "确定删除该数据吗?", function (r) { if (r) { var ids = [];//定义一个数组用于存储选中的删除项 var rows = $("#dg").datagrid("getSelections"); for (var i = 0; i < rows.length; i++) { ids.push(rows[i].exl_id); } //获取id // console.log(ids); var data = {"ids": ids}; $.post( url = "{:U("Index/delete")}",//删除方法路径 data, function (msg) { $("#dg").datagrid({ url:"__URL__/get_all", queryParams:{page:1,rows:20} }); } ); } }); } } // 搜索 $("#select").click(function(){ $(".select").toggle(); }); $("#selectinput").click(function(){ var exl_usname = $("#exl_usname").val(); var exl_chname = $("#exl_chname").val(); var exl_usurl = $("#exl_usurl").val(); var exl_churl = $("#exl_churl").val(); var exl_text = $("#exl_text").val(); $("#dg").datagrid({ url:"__URL__/get_all", queryParams:{ page:1,rows:20, "exl_usname":exl_usname, "exl_chname":exl_chname, "exl_usurl":exl_usurl, "exl_churl":exl_churl, "exl_text":exl_text } }); }) </script> <script> // 打开窗口 $( "#openwin" ).click(function() { $("#win").window("open"); }); $( "#updaten" ).click(function() { $("#form").window("open"); // close a window }); </script> <script type="text/javascript"> //数据加载表格 $("#dg").datagrid({ url:"__URL__/get_all",//从远程站点请求数据的数据地址。 queryParams:{page:1,rows:20}, pagination:true,//设置为 true,在数据网格(datagrid)底部显示分页工具栏。 method:"get",//请求远程数据的方法类型get/post。 pageSize:30,//默认每页显示个数 columns:[[//列(Column)属性 {field:"exl_usname",title:"英文名称",width:100}, {field:"exl_chname",title:"中文名称",width:100}, {field:"exl_usurl",title:"英文路径",width:150}, {field:"exl_churl",title:"中文路径",width:200}, {field:"exl_text",title:"用途",width:400}, ]] }); </script> </body> </html>
菜鸟不会啊:还是有收获的,
common/common/function.php文件内容
<?php /** * Created by PhpStorm. * User: insist * Date: 2016/8/31 * Time: 14:18 */ function get_date_grid($model_name){ $model = D($model_name); $map = array_merge(get_page_query_map(I("get.")), get_page_query_map(I("post."))); $page = max(I("get.page"), 1); // $rows_num = I("get.rows")?I("get.rows"):20; $rows_num = I("get.rows"); $obj = $model->get_list_use_page($map, $page, $rows_num); return array("total"=>$obj["total"], "rows"=>$obj["list"], "map"=> $obj["map"]); } function get_page_query_map($array){ if(!isset($array)||!$array){ $array = array(); } //默认采用like //保留分页key为‘p’ unset($array["page"]); unset($array["rows"]); $map = array(); foreach($array as $k => $v){ $map[$k] = array("like", "%$v%"); } return $map; } function filter_query_map($map = array()){ $temp = array(); unset($map["sort"]); unset($map["order"]); foreach($map as $k => $v){ if($v[1]!="%%"&&$v[1]!=""){ $temp[$k] = $v; } } return $temp; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。