PHP Ajax实现表格实时编辑
发布时间 - 2026-01-11 00:59:29 点击率:次如果我们的对于一个表格中所有的数据都能在本页进行操作那该是多酷炫的一件事(用起来炒鸡爽)!

用Ajax就可以实现这个功能啦。废话不多说,下面贴出我写的demo吧哈哈。我用的TP框架(3.2)比较习惯啦。
首先是HTML代码部分:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AJAX实时编辑</title>
<script src="__PUBLIC__/jquery-1.7.2.min.js"></script>
</head>
<body>
<center>
<table border="1" width="1000" id="g_table">
<tr>
<!-- <th>ID</th> -->
<th>TAB1</th>
<th>TAB2</th>
<th>TAB3</th>
<th>TAB4</th>
<th><span onclick="add()">添加</span></th>
</tr>
<foreach name="tablist" item="vv">
<tr>
<!-- <td>{$vv.id}</td> -->
<input type="hidden" name="id" value="{$vv.id}">
<td>{$vv.tab1}</td>
<td>{$vv.tab2}</td>
<td>{$vv.tab3}</td>
<td>{$vv.tab4}</td>
<td><span onclick="del(this)" id="del">删除</span><span onclick="edit(this)" id="edit">修改</span></td>
</tr>
</foreach>
</table>
</center>
</body>
<script>
var g_table = $("#g_table");
function add(){
var addRow = $("<tr></tr>");
g_table.append(addRow);
for(var i = 0;i < 4;i++){
var col_td = $("<td><input type='text' /></td>");
addRow.append(col_td);
}
var col_opt = $("<td></td>");
var confirmBtn = $("<a href='javascript:;'>确认</a>");
var cancelBtn = $("<a href='javascript:;'>取消</a>");
cancelBtn.click(function(){
window.location.reload();
});
confirmBtn.click(function(){
var currentRow = $(this).parent().parent();
var input_files = currentRow.find("input");
var post_files = {};
for(var i = 0 , j = input_files.length;i < j;i++){
post_files['clo_' + i] = input_files[i].value;
}
// $.post("{:U('ajax/add')}",post_files,function(msg){
// debugger;
// })
$.ajax({
type: 'post',
url : "{:U('ajax/add')}",
data: {post_files},
success:function(msg){
alert(msg);
window.location.reload();
}
})
});
col_opt.append(confirmBtn);
col_opt.append(cancelBtn);
addRow.append(col_opt);
}
function del(obj){
var id = $(obj).parent().prev().prev().prev().prev().prev().val();
$.ajax({
type: 'post',
url: "{:U('ajax/del')}",
data: {id:id},
success:function(msg){
alert(msg);
}
})
$(obj).parent().parent().remove();
}
function edit(obj){
var id = $(obj).parent().prev().prev().prev().prev().prev().val();
for(var i = 1;i < 5;i++){
var temp = "<td><input type='text' value='" + $(obj).parent().parent().children().eq(i).html() + "'/></td>";
$(obj).parent().parent().children().eq(i).replaceWith(temp);
}
var confirmBtn1 = $("<span id='confirm'>确认</span>");
var cancelBtn1 = $("<span onclick='back()'>取消</span>");
confirmBtn1.click(function(){
var currentRow = $(this).parent().parent();
var input_files = currentRow.find("input");
var post_files = {};
for(var i = 0 , j = input_files.length;i < j;i++){
post_files['clo_' + i] = input_files[i].value;
}
$.ajax({
type: 'post',
url : "{:U('ajax/edit')}",
data: {post_files:post_files,id:id},
success:function(msg){
alert(msg);
window.location.reload();
}
})
});
$(obj).prev().replaceWith(confirmBtn1);
$(obj).replaceWith(cancelBtn1);
}
function back(){
location.reload();
}
</script>
</html>
下面是控制器中的代码:
<?php
namespace Home\Controller;
use Think\Controller;
class AjaxController extends Controller{
public function index(){
$tab = M('table');
$tablist = $tab->select();
$this->assign('tablist',$tablist);
$this->display();
}
public function del(){
$map['id'] = $_POST['id'];
$tab = M('table');
$info = $tab->where($map)->delete();
if($info){
$this->ajaxReturn("删除成功");
}else{
$this->ajaxReturn("删除失败");
}
}
public function add(){
$map['tab1'] = $_POST['post_files']['clo_0'];
$map['tab2'] = $_POST['post_files']['clo_1'];
$map['tab3'] = $_POST['post_files']['clo_2'];
$map['tab4'] = $_POST['post_files']['clo_3'];
$tab = M('table');
$res = $tab->add($map);
if($res){
$this->ajaxReturn("添加成功");
}else{
$this->ajaxReturn("添加失败");
}
}
public function edit(){
$id = $_POST['id'];
$map['tab1'] = $_POST['post_files']['clo_1'];
$map['tab2'] = $_POST['post_files']['clo_2'];
$map['tab3'] = $_POST['post_files']['clo_3'];
$map['tab4'] = $_POST['post_files']['clo_4'];
// dump($map);exit;
$tab = M('table');
$res = $tab->where('id='.$id)->save($map);
if($res){
$this->ajaxReturn("更新成功");
}else{
$this->ajaxReturn("更新失败");
}
}
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# php
# ajax表格实时编辑
# ajax实现表格编辑
# php+ajax实时刷新简单实例
# php+ajax实时输入自动搜索匹配的方法
# 值得分享的php+ajax实时聊天室
# PHP实现的消息实时推送功能【基于反ajax推送】
# AJAX 实时读取输入文本(php)
# PHP+Ajax实时自动检测是否联网的方法
# php+ajax实现无刷新动态加载数据技术
# php采用ajax数据提交post与post常见方法总结
# ajax处理php返回json数据的实例代码
# php+jQuery ajax实现的实时刷新显示数据功能示例
# 本页
# 能在
# 我用
# 一件事
# 多说
# 我写
# 贴出
# 就可以
# 酷炫
# 器中
# ID
# g_table
# tr
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
Laravel如何发送系统通知?(Notification渠道示例)
Laravel如何实现多对多模型关联?(Eloquent教程)
Laravel怎么清理缓存_Laravel optimize clear命令详解
zabbix利用python脚本发送报警邮件的方法
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
Laravel怎么使用artisan命令缓存配置和视图
Linux安全能力提升路径_长期防护思维说明【指导】
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
如何在IIS管理器中快速创建并配置网站?
Laravel如何保护应用免受CSRF攻击?(原理和示例)
香港服务器租用费用高吗?如何避免常见误区?
如何在云指建站中生成FTP站点?
Laravel Fortify是什么,和Jetstream有什么关系
如何快速上传建站程序避免常见错误?
Android GridView 滑动条设置一直显示状态(推荐)
深入理解Android中的xmlns:tools属性
教你用AI润色文章,让你的文字表达更专业
nodejs redis 发布订阅机制封装实现方法及实例代码
实例解析angularjs的filter过滤器
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
EditPlus中的正则表达式 实战(2)
Android使用GridView实现日历的简单功能
在centOS 7安装mysql 5.7的详细教程
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
如何快速搭建高效香港服务器网站?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
电商网站制作价格怎么算,网上拍卖流程以及规则?
浅述节点的创建及常见功能的实现
如何快速重置建站主机并恢复默认配置?
lovemo网页版地址 lovemo官网手机登录
香港服务器WordPress建站指南:SEO优化与高效部署策略
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
音乐网站服务器如何优化API响应速度?
微信小程序 wx.uploadFile无法上传解决办法
iOS正则表达式验证手机号、邮箱、身份证号等
文字头像制作网站推荐软件,醒图能自动配文字吗?
HTML 中动态设置元素 name 属性的正确语法详解
如何在阿里云域名上完成建站全流程?
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
大连网站制作公司哪家好一点,大连买房网站哪个好?
Laravel如何实现模型的全局作用域?(Global Scope示例)
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
如何快速生成ASP一键建站模板并优化安全性?

