jquery ajax双击div可直接修改div中的内容

前端技术 2023/09/07 JavaScript

最近在做后台功能开发的时候,用到对排序字段的修改,感觉只为了修改一个排序值,而要重新进入编辑页比较麻烦,于是网上找点资料自己动手写了一个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

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。