最近在做后台功能开发的时候,用到对排序字段的修改,感觉只为了修改一个排序值,而要重新进入编辑页比较麻烦,于是网上找点资料自己动手写了一个jquery双击实现直接修改排序值的效果:
html代码:
<div title=\"【双击可直接修改】\" class=\"changeSort\" id=\"{$id}\">{$sort}</div>
JS代码:
<script type=\"text/javascript\"> //双击修改排序 $(\'.changeSort\').dblclick(function(){ var url = \"{:U(\'setSort\')}\"; var td = $(this); var id = td.attr(\'id\'); var text = td.text(); var txt = $(\"<input type=\'text\' class=\'input-small\' >\").val(text); txt.blur(function(){ // 失去焦点,保存值。于服务器交互自己再写,最好ajax var newText = $(this).val(); $.ajax({ url:url, type:\'POST\', data:{\'tid\':id,\'sort\':newText}, dataType:\'json\', success:function(res){ if(res.flag==1){ layer.msg(res.msg); // 移除文本框,显示新值 $(this).remove(); td.text(newText); }else if(res.flag==3){ layer.msg(res.msg); txt.val(newText); } } }); }); td.text(\"\"); td.append(txt); }); </script>
PHP代码:
<?PHP /** * ajax 设置排序值 */ public function setSort(){ if(IS_POST){ $tid = I(\'post.tid\'); $sort = I(\'post.sort\'); if(!is_numeric($sort)){ $arr = array( \'flag\'=>3, \'msg\'=>\'请输入数字\', \'link\'=>\'\', \'content\'=>\'\' ); $this->ajaxReturn($arr); } $data = array( \'id\'=>$tid, \'sort\'=>$sort ); $this->mod_sort = M(\'Sort\'); $res = $this->mod_sort->save($data); if($res){ $arr = array( \'flag\'=>1, \'msg\'=>\'排序值设置成功\', \'link\'=>\'\', \'content\'=>\'\' ); }else{ $arr = array( \'flag\'=>2, \'msg\'=>\'排序值设置失败\', \'link\'=>\'\', \'content\'=>\'\' ); } }else{ $arr = array( \'flag\'=>0, \'msg\'=>\'请求非法!\', \'link\'=>\'\', \'content\'=>\'\' ); } $this->ajaxReturn($arr); } ?>
效果如下图:
以上就是本文的全部内容,希望对大家的学习有所帮助。
本文地址:https://www.stayed.cn/item/18853
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我