Récemment, lorsque je développais des fonctions backend, j'avais l'habitude de modifier le champ de tri. J'avais l'impression qu'il était difficile de rentrer dans la page d'édition juste pour modifier une valeur de tri, j'ai donc trouvé des informations en ligne et écrit un jquery. Implémentation du double-clic. L'effet de la modification directe de la valeur de tri :
code html :
<div title="【双击可直接修改】" class="changeSort" id="{$id}">{$sort}</div>
Code 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>
Code 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); } ?>
L'effet est le suivant :
Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.