思路分析:

将 table中的表格 改变成为 input表格框获得值 ajax配合修改 删除

<?php
use yii\helpers\Url;$web = Url::base();
?>
<style>.btn-save-data {display: none;}.btn-cancel-data {display: none;}
</style>
<script type="text/javascript">//添加 页面  尾部追加 td input 框跟值$("#onAddBaseDataCategory").click(function () {var trtd = $('<tr>' +"<td class='code_one'><input name='code' type='text' value=''></td>" +"<td class='name_one'><input name='name' type='text' value=''></td>" +"<td class='tag_one'><input name='tag' type='text' value=''></td>" +"<td class='table-text-align-left'>" +"<a href=javascript:void(0) οnclick='onSaveBaseDataCategory(this)' data-id= '' class='btn btn-link'>保存</a>" +"<a href=javascript:void(0) οnclick='cancelBaseDataCategory(this)' data-id= '' class='btn btn-link'>取消</a>" +"</td>" +"</tr>");trtd.prependTo("#baseDataCategoryTable");});//编辑页面function onEditData(obj) {var id = $(obj).attr('data-id');var object = $(obj).parent().parent();object.find('.btn-edit-data').hide();object.find('.btn-delete-data').hide();object.find('.btn-save-data').show();object.find('.btn-cancel-data').show();var code = object.find(".code_one").text();var name = object.find(".name_one").text();var tag = object.find(".tag_one").text();object.find(".code_one").html("<input data-base-title='" + code + "' name='code' type='text' value='" + code + "'>");object.find(".name_one").html("<input data-base-title='" + name + "' name='name' type='text' value='" + name + "'>");object.find(".tag_one").html("<input data-base-title='" + tag + "' name='tag' type='text' value='" + tag + "'>");}// 数据保存function onSaveBaseDataCategory(obj) {var object = $(obj).parent().parent();object.find('.btn-save-data').show();var id = $(obj).attr('data-id');var is_enabled = 1;var data = {};var code = object.find('input[name="code"]').val();var name = object.find('input[name="name"]').val();var tag = object.find('input[name="tag"]').val();if (id == '') {id = null;}data.code = code;data.name = name;data.tag = tag;data.is_enabled = is_enabled;data.id = id;requestJson("base-data-category-save-handler", data, true, function (response) {if (response.status == 0) {id = response.data.id;  //ajax  添加|修改  成功后 读取数据库的idreplace(object, id, code, name, tag);} else {errorDialog(response.message);}});}//取消function cancelBaseDataCategory(obj) {var object = $(obj).parent().parent();var id = $(obj).attr('data-id');if (id == '') {object.remove();return;}var code = object.find('input[name="code"]').attr('data-base-title');var name = object.find('input[name="name"]').attr('data-base-title');var tag = object.find('input[name="tag"]').attr('data-base-title');//        //替换object.find('.code_one').html("<td class='code_one'>" + code + "</td>");object.find('.name_one').html("<td class='name_one'>" + name + "</td>");object.find('.tag_one').html("<td class='tag_one'>" + tag + "</td>");object.find('.btn-edit-data').show();object.find('.btn-delete-data').show();object.find('.btn-save-data').hide();object.find('.btn-cancel-data').hide();}//input 框 替换 表格function replace(object, id, code, name, tag) {var tr = '<tr>' +"<td class='code_one'>" + code + "</td>" +"<td class='name_one'>" + name + "</td>" +"<td class='tag_one'>" + tag + "</td>" +"<td class='table-text-align-left'>" +"<a href=javascript:void(0) οnclick='onEditData(this)' data-id='" + id + "' " +"class='btn btn-link btn-edit-data'>编辑</a>" +"<a href=javascript:void(0) οnclick='deleteBaseDataCategory(this)' data-id='" + id + "'" +"class='btn btn-link btn-delete-data'>删除</a>" +"<a href=javascript:void(0) οnclick='onSaveBaseDataCategory(this)' data-id='" + id + "'" +"class='btn btn-link btn-save-data'>保存</a>" +"<a href=javascript:void(0) οnclick='cancelBaseDataCategory(this)' data-id='" + id + "'" +" class='btn btn-link btn-cancel-data'>取消</a>" +"</td>" +"</tr>";object.replaceWith(tr);return true;}//删除基础分类function deleteBaseDataCategory(obj) {var object = $(obj).parent().parent();var id = $(obj).attr('data-id');var data = {};data.id = id;requestJson('base-data-category-delete-handler', data, true, function (response) {if (response.status == 0) {         object.remove();            } else {errorDialog(response.message); //这是错误提示 自己封装的}})}</script>
<div class="form-horizontal" id="base_data_category_submit_form"><div class="panel panel-frame panel-operat"><div class="panel-body"><div class="panel-content"><a type="button" class="btn btn-primary putaway-icon "><div class="btn-icon"></div><div id="onAddBaseDataCategory" class="btn-text">添加</div></a></div></div></div><div class="panel panel-frame"><div class="table-responsive"><table class="table table-bordered table-hover" id="baseDataCategoryTable"><thead><tr id="th"><th>编码</th><th>名称</th><th>标签</th><th>操作</th></tr></thead><tbody><?phpforeach ($items as $item) {?><tr><td class='code_one'><?= $item['code'] ?></td><td class='name_one'><?= $item['name'] ?></td><td class='tag_one'><?= $item['tag'] ?></td><td class='table-text-align-left'><a href="javascript:void(0);" οnclick="onEditData(this)" data-id="<?= $item['id'] ?>"class='btn btn-link btn-edit-data'>编辑</a><a href="javascript:void(0);" οnclick="deleteBaseDataCategory(this)"data-id="<?= $item['id'] ?>"class='btn btn-link btn-delete-data'>删除</a><a href="javascript:void(0);" οnclick="onSaveBaseDataCategory(this)"data-id="<?= $item['id'] ?>"class='btn btn-link btn-save-data'>保存</a><a href=javascript:void(0) οnclick='cancelBaseDataCategory(this)'data-id="<?= $item['id'] ?>"class='btn btn-link btn-cancel-data'>取消</a></td></tr><?php}?></tbody></table></div><div class="table-pagination"></div></div>
</div>

ps: requestJson 是我自己封装的ajax请求 : 配合 yii框架使用的 我给大家分享一下

/*** ajax获取json数据* @param url* @param data* @param async* @param successFun* @param errorFun* @returns {{}}*/
requestJson = function (url, data, async, successFun, errorFun) {if (!(typeof loading === 'undefined')) {loading.show();}var responseData = {};responseData.status = -100;responseData.message = '网络不给力!';responseData.data = null;// data._csrf = $('meta[name="csrf-token"]').attr("content");
$.ajax({async: async || false,type: "POST",url: url,data: data,dataType: "json",success: function (data) {responseData = data;if (successFun) {successFun(data);}if (!(typeof loading === 'undefined')) {loading.hide();}},error: function (XMLHttpRequest, textStatus, errorThrown) {if (!(typeof loading === 'undefined')) {loading.hide();}responseData.status = -101;responseData.message = XMLHttpRequest.responseText;// errorMessage(responseData.message);if (errorFun) {errorFun(responseData);}}});return responseData;
};

转载于:https://www.cnblogs.com/lt-com/p/6870172.html

jquery 配合 ajax 完成 在线编辑 你值得拥有相关推荐

  1. jquery ajax java二级联动_使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例...

    首先我们需要先建立好数据库,将一些数据插入进去 需要两张表: province:省份表 city: 城市表 如图: 然后再在java中建立相关的实体类与之对应 再然后,我们就能开始做jdbc的操作了 ...

  2. 文档在线编辑开发心得

    一.背景 在本次公司的开发任务中,偶然接触到了畅写office的文档在线编辑集成开发,在开发中遇到点问题,觉得这个东西挺有趣的,写此文章保存开发心得. 二.前期准备 文档在线编辑功能只有一个api.文 ...

  3. 基于SSM 的 Office 在线编辑

    Office在线编辑功能在OA系统中经常被使用.本文主要介绍在SSM框架下利用Java整合Office Online Server 2016 (OOS) 进行office 在线编辑.OOS的环境搭建之 ...

  4. java 流转文件_java 实现 word 文档的在线编辑以及流转

    用 pageoffice 实现文档的在线编辑以及文档流转 1: 流程 用修改无痕迹模式起草文件,各个领导批注自己意见的时候使用强制留痕模式打开,文员清稿的时候用核稿模式打开,还有最后只读模式打开发布的 ...

  5. 从零开始学习jQuery (六) AJAX快餐【转】

    一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍. 本篇文章讲解如何使用jQuery方便快捷的实现A ...

  6. ajax php计数,jQuery+PHP+Ajax动态数字统计展示实例

    jQuery+PHP+Ajax实现的一款动态数字统计展示实例,本例是在页面上动态展示了当前在线用户数,当然了,你可以应用到其他更多场景中. 首先我们在#number放置要统计的数字: 当前在线: - ...

  7. 基于jquery的ajax聊天室系统,基于jQuery的Ajax聊天室应用毕业设计(含外文翻译)...

    基于jQuery的Ajax聊天室应用毕业设计(含外文翻译) 毕业设计(论文) I 基于基于 jQuery 的的 Ajax 聊天室应用聊天室应用 摘摘 要要 随着网络的逐渐普及,以及网络技术的不断发展, ...

  8. jQuery的ajax的post请求json格式无法上传空数组

    问题描述:在和后端对接时,使用jquery的ajax的post方式向后端传递一序列约定好格式的对象数组.遇到了一个现象:如果对象中的数组是空数组,那么在请求参数中是不会出现的. 以下是数据的对比:   ...

  9. 从零开始学习jQuery (六) AJAX快餐

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

最新文章

  1. 用mpvue实现的微信小程序版cnode社区
  2. scipy 图像处理-深度学习
  3. layer.alert 延迟自动关闭_自动门中的检测与延时预防事故,分享控制案例
  4. UVa LA 4253 UVa 1421 Archery 枚举,状态削减,oj错误题目 难度: 1
  5. 在JSP中读取POST的JSON数据
  6. bzoj4472: [Jsoi2015]salesman(树形dp)
  7. 数据结构迷宫代码_数据结构课程设计——迷宫求解(二)
  8. 开环控制的两轮差速驱动小车_汽车的差速器、差速锁有什么不同?很多车主容易把它俩搞混...
  9. 大数据_Flink_Java版_数据处理_流处理API_Transform(5)_connect合流---Flink工作笔记0033
  10. linux java gc_Java GC机制及相关
  11. 远程办公一晃一天,环境搭建履步维艰
  12. linux开启和关闭防火墙
  13. Mysql Data type
  14. layer弹窗在键盘按回车将反复刷新_人生减负指南——iPad Pro+妙控键盘上手体验...
  15. linux python守护进程编写
  16. 阿里春招Android面经
  17. 犀牛插件学习——T-Splines
  18. 峰值信噪比和结构相似性
  19. Nginx优化---防盗链--网页缓存--网页压缩--日志分割
  20. 咽喉肿痛合谷穴照海穴

热门文章

  1. java set spliterator_Java TreeSet spliterator()方法
  2. Java语言实现二分查找(可查询重复数据)
  3. 回溯算法解决迷宫问题
  4. 小班计算机游戏教案,幼儿园小班游戏教案
  5. java中形参不可以是对象吗_(重要)java都是值传递,与对象形参所指向的对象改变,其实参所指向的对象也相应改变并不矛盾(2011年9.30日一天写的两个程序的总结结果)...
  6. 05APR2022 日期格式这样的怎么转换成日期?
  7. python进制转换内置函数_python数学运算、逻辑运算和进制转化相关的 内置函数...
  8. 安装ubuntu20.4+gtx1050+cuda11.3
  9. 线程池 c linux 编程,关于c++:linux-c编程之高效线程池如何实现无琐化
  10. 炼油机出来的什么油_轮胎炼油出来的炭黑有什么用?一吨废旧轮胎出多少炭黑...