table表格实现点击修改 PHP同步数据库 排序
最近几天在做一个网站,牵扯到一个导航管理的功能!领导说不用作,可是由于自己自作主张,搞了1天的功能。领导说这个导航管理就是不用做!容易牵扯出好多问题来!估摸是客户小的原因!
没办法就把我1天的劳动荒废了!在这里贴出来,一个是与大家交流, 第二,也是希望大家可以使劲拍砖,相信大家的拍砖可以使我更好的成长!我可以学到更多的知识!
本人初级PHP鸟一只!希望各位多多指教!
上代码!
首先是HTML代码!主要实现了!table的一个表格,未添加任何CSS样式,因为做到这一步,要添加样式的时候,领导说不需要!就再没往下做!
我直接拷贝的我做的数据,表格里面存的是数据!我用的CI框架做的!所以数据都是PHP代码段输出!$nav_array是从数据库取出来的导航数组
<div>这里是导航管理界面</div>
<form method="post">
<table class="table" border="1" style="border-collapse: collapse">
<thead><tr><th>顺序</th><th>导航名称</th><th>管理</th></tr></thead> <tbody>
<?php foreach($nav_array as $key=>$value):?>
<tr num="<?php echo $value['id']?>" navid="<?php echo $value['id'];?>">
<td><?php echo $value['sort']?></td>
<td><?php echo $value['nav_name']?></td>
<!-- <td><button class="button" num="--><?php //echo $value['id']?><!--">修改</button></td>-->
</tr>
<?php endforeach ?> </tbody>
</table>
</form>
jquery代码实现的点击变修改!主要的思路就是用empty抹掉原来表格中的数据,添加进去一段input
这段input html代码应该可以用for循环搞定!我懒的搞了!有兴趣的自己研究下吧!
$('.table').on('click', '.button', function(){
var num = $(this).attr('num');//当前点击事件的按钮flag
var current_tr = $('table').find('tr[num="'+ num +'"]');//当前点击事件的tr行
var current_tds = $(current_tr).find('td');//当前点击事件的行所有td
var navid = $(current_tr).attr('navid');//这个是导航的id 是主键
//存储当前点击事件行中td的原值,用在下面的form 的html代码中显示
var arr = [];
for(var i = 0; i < current_tds.length; i++){
arr[i] = $(current_tds).eq(i).text();
}
//要替换的html代码
var td_html = '<td><input type="hidden" name="nav_id" value="'+ navid +'"><input type="text" name="sort" value="'+ arr[0] +'"></td><td><input type="text" name="nav_alter" value="'+ arr[1] +'"></td><td><input type="submit" name="" value="确定"></td>';
$('.table').find('tr[num="'+ num +'"]').empty().append(td_html);
});
PHP代码,这里直接从我的代码拷贝过来了,不修改了!有缺点欢迎指正!懂的话,应该可以改成自己的代码
index主要就是载入这个页面,用了CI的input类,post接收到数据,从数据库提取一级导航,然后验证post过来的数据是否存在于数据库中的数据中!
public function index(){
$nav_id = $this->input->post('nav_id'); //导航ID
$nav_name = $this->input->post('nav_alter');//修改的导航名
$sort = $this->input->post('sort'); //排序num
$data['nav_array'] = $this->m_nav_manage->getNav();//提取所有一级导航,从数据库
//检查post过来的数据 是否已经存在于数据库中
if( $nav_name || $sort) {
if( !$this->check_nav_in_array( $nav_name, $data['nav_array'] ) || !$this->check_nav_in_array($sort, $data['nav_array'])) {
$this->m_nav_manage->up_data_nav($nav_name, $sort, $nav_id);
$data['nav_array'] = $this->m_nav_manage->getNav();
//重写数据库并且提取数据
}
}
$this->load->view('nav_manage', $data);
}
/**检查nav是否存在于二维数组中
* @param $nav 待搜索的值
* @param $array 被搜索的二维数组
* @return bool
*/
private function check_nav_in_array($value, $array) {
for( $i = 0; $i < count($array); $i++ ) {
foreach( $array as $key=>$value ) {
if( in_array( $value, $array[$i] ) ) {
return TRUE;
}
}
}
}
另外有一段在model中的函数,主要用来update数据和并且将排序更改
,实现思路 ----主要是用传过来的sort,$navid是隐藏的input中提交过来的,$navname 三个变量都是post过来的数据
这段实现的比较纠结!总之 $nav_a 取得的是这个nav的ID $nav_b取得的是这个nav的sort
功能实现了,我自己到现在还没别过劲来!~~留给自己慢慢思考吧!
get_one() 生成的select语句 SELECT id FROM $this->table WHERE sort = $sort; 其他自己的研究吧!
public function up_data_nav($navName, $sort, $navId) {
$nav_a = $this->m_common->get_one('id', $this->table, array('sort'=>$sort));//要被改成$sort的nav的id
$nav_b = $this->m_common->get_one('sort', $this->table, array('id'=>$navId));//正在修改的nav的sort
//print_r($nav_a); print_r($nav_b); die();
$nav_alter_array['nav_name'] = $navName;
$nav_alter_array['sort'] = $sort;
//print_r($nav_alter_array);die();
$this->m_common->up_data($this->table, $nav_alter_array, array('id' => $navId) );
$this->m_common->up_data($this->table, array('sort'=>$nav_b['sort']), array( 'id' => $nav_a['id'] ) );
}
/**
* 获取单条数据
* @param $table 表名
* @param $where 条件数组
* @param string $fields 查询的字段 默认是 '*'
*
* 返回一个数组
*/
public function get_one($fields = '*', $table, $where ) {
if($where != '') {
return $this->db->select($fields)->from($table)->where($where)->get()->row_array();
} else {
return $this->db->select($fields)->from($table)->get()->row_array();
}
}
table表格实现点击修改 PHP同步数据库 排序的更多相关文章
- 一百零四、SAP中ALV事件之十六,让ALV表格能点击修改
一.上一篇我们写到生产的ALV表格,但是表格内容不支持修改,如果我们需要修改下图的数量,需要怎么操作呢 二.代码如下,设置 ls_fieldcat-edit = 'X'. "允许编辑. ...
- 双击Table表格td变成text修改内容
//先不多说这里上我的页面 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- table 表格的增删和修改
如上图,图片的增删都没有问题:唯一的问题就是我改变下一行的内容时,把上面一行给覆盖了,费了好久,终于找到原因了,直接贴代码: 效果如下:
- 修改SQL Service数据库排序规则
修改数据库 alter database KidsPang COLLATE Chinese_PRC_CI_AS 修改表中字段ALTER TABLE [Member] ALTER COL ...
- 修改sqlserver的数据库排序规则语句
alter database SOETMS collate Chinese_PRC_CI_AS
- [转]jquery 点击表格变为input可以修改无刷新更新数据
原文地址:http://www.freejs.net/article_biaodan_43.html 之前已经发了2篇类似的文章<点击变td为input更新>和<jquery表格可编 ...
- 从头开始一步一步实现EF6+Autofac+MVC5+Bootstarp极简前后台ajax表格展示及分页(二)前端修改、添加表格行点击弹出模态框
在前一篇中,由于不懂jquery,前端做的太差了,今天做稍做修改,增加一个跳转到指定页面功能,表格行点击样式变化.并且在表格中加入bootstarp的按钮组,按钮点击后弹出模态框,须修改common, ...
- js 实现table表格拖拽和点击表头升降序排序
js 实现table表格拖拽和点击表头升降序排序,写的比较乱,用的时候可以把其中的一些模块函数提取出来 样式,由于是可拖拽表格,所以样式 table tr th{cursor:move;} js实现 ...
- 使用 iview Table 表格组件修改操作的显示隐藏
使用 iview Table 表格组件修改操作的显示隐藏,如下图 1.如何设置 table 操作按后台传入的状态值去渲染 不同的按钮? 解决方法 我们在vue2中,动态渲染html 使用的是 retu ...
随机推荐
- win8 企业版 安装 .net2.0 .net 3.5
Windows 8 默认集成 .Net Framework 4.5,因此运行一些基于3.5或以前版本的程序时会弹出这个提示. 2012-3-2 15:24 上传 下载附件 (23.91 KB) 这 ...
- Codeforces Round #290 (Div. 2) A. Fox And Snake 水题
A. Fox And Snake 题目连接: http://codeforces.com/contest/510/problem/A Description Fox Ciel starts to le ...
- POJ 2309 BST 树状数组基本操作
Description Consider an infinite full binary search tree (see the figure below), the numbers in the ...
- 即时通信(RPC)的Rtmp实现--配置篇
http://flexman.blog.sohu.com/129838570.html http://flexman.blog.sohu.com/130007574.html step 1: 首先要确 ...
- unity3d快捷键大全
Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面 整合的专业游戏引擎.Unit ...
- 为什么Wireshark无法解密HTTPS数据
为什么Wireshark无法解密HTTPS数据 导读 由于需要定位一个问题,在服务器上tcpdump抓取https数据包,然后下载到本地打开wireshark分析.然后我们下载域名私钥配置到wires ...
- QQ上传大文件为什么这么快
今天和同事在群里讨论“QQ上传大文件/QQ群发送大文件时,可以在极短的时间内完成”是如何做到的. 有时候我们通过QQ上传一个几百M的文件,竟然只用了几秒钟,从带宽上限制可以得出,实际上传文件是不可能的 ...
- jquery . fancybox()
1.父页面 function chooseTopic(btn) {//选择议题 $.fancybox({ type : 'iframe', href : '', fitToView : false, ...
- iOS 重力感应 学习1 陀螺仪 水平仪 指南针
小球可以随着重力感应 四处乱撞. 放大了坐标位移 就可以看见小球动了. 然后规定小球的路径 当滑到中间时候 弹出一张图片 作为提示. 我做了一个小demo 效果不错哦 CMMotionManager ...
- android -- WatchDog看门狗分析
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生 ...