思路分析:

将 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) onclick='onSaveBaseDataCategory(this)' data-id= '' class='btn btn-link'>保存</a>" +
"<a href=javascript:void(0) onclick='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 添加|修改 成功后 读取数据库的id
replace(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) onclick='onEditData(this)' data-id='" + id + "' " +
"class='btn btn-link btn-edit-data'>编辑</a>" + "<a href=javascript:void(0) onclick='deleteBaseDataCategory(this)' data-id='" + id + "'" +
"class='btn btn-link btn-delete-data'>删除</a>" + "<a href=javascript:void(0) onclick='onSaveBaseDataCategory(this)' data-id='" + id + "'" +
"class='btn btn-link btn-save-data'>保存</a>" + "<a href=javascript:void(0) onclick='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>
<?php
foreach ($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);" onclick="onEditData(this)" data-id="<?= $item['id'] ?>"
class='btn btn-link btn-edit-data'>编辑</a>
<a href="javascript:void(0);" onclick="deleteBaseDataCategory(this)"
data-id="<?= $item['id'] ?>"
class='btn btn-link btn-delete-data'>删除</a>
<a href="javascript:void(0);" onclick="onSaveBaseDataCategory(this)"
data-id="<?= $item['id'] ?>"
class='btn btn-link btn-save-data'>保存</a>
<a href=javascript:void(0) onclick='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;
};

最新文章

  1. CentOS6.3搭建Nginx代理访问MongoDB GridFS图片资源
  2. mac下有道词典用不了
  3. python trackback的使用心得
  4. location url 反向代理到来机的其它端口 gitlab
  5. python3环境搭建(CentOS7.2)
  6. Java的动态绑定
  7. shell 截取指定的字符串
  8. JS 变量或参数是否有值的判断
  9. 初识FreeMarker
  10. 【lucene系列学习二】Lucene实现高亮显示关键词
  11. [刷题]算法竞赛入门经典(第2版) 4-1/UVa1589 - Xiangqi
  12. CXF之&quot;@XmlType.name 和 @XmlType.namespace 为类分配不同的名称&quot;错误
  13. tomcat 部署war项目
  14. [Swift]LeetCode785. 判断二分图 | Is Graph Bipartite?
  15. Linux服务器在SSH客户端如何实现免密登录
  16. PythonStudy——列表的常用操作 List of common operations
  17. Django 利用 Pagination 简单分页
  18. weblogic threadpool has stuck threads
  19. PowerBuilder编程新思维3:适配(三层架构与GraphQL)
  20. oracle列自增实现(1)-Sequence+Trigger实现Oracle列自增

热门文章

  1. 零基础逆向工程40_Win32_14_枚举窗口_模拟鼠标键盘
  2. 栅格那点儿事(四D)
  3. Azure 进阶攻略 | 电脑跑分你会,但虚拟机存储性能跑分的正确姿势你造吗?
  4. 微信小程序又一爆炸功能上线-云开发
  5. Win10桌面右键响应非常慢怎么办?
  6. Ubuntu小工具
  7. SAP CRM和C4C的产品主数据price维护
  8. JAVA去掉HTMl以及CSS样式
  9. Android(java)学习笔记65:Clock App 编写报错02
  10. react里面怎么引入样式