实时编辑表格,可以编辑的表格

news/2024/10/22 12:19:08/

本站已经有《jquery表格可编辑修改表格里面的值,点击td变input无刷新更新表格》这个案例是一个非常完整的案例,带数据库更新部分

本例没有更新数据库的部分,但是有传递的过程

实时编辑表格,可以编辑的表格
演示

 

PHP Code
  1. <table id="editTable">  
  2.             <thead>  
  3.                 <tr>  
  4.                     <?php   
  5.                     for($colIndx=0;$colIndx<5;$colIndx++){  
  6.                         ?>  
  7.                     <th name="<?php echo "c".$colIndx ?>"><?php echo "Column $colIndx"?></th>  
  8.                         <?php  
  9.                     } ?>  
  10.                 </tr>  
  11.             </thead>  
  12.             <tbody>  
  13.                 <?php  
  14.                 for($rowIndx=0;$rowIndx<5;$rowIndx++){  
  15.                     ?>  
  16.                 <tr row="<?php echo $rowIndx ?>">  
  17.                     <?php  
  18.                     for($colIndx=0;$colIndx<5;$colIndx++){  
  19.                         ?>  
  20.                     <td><?php echo "R".$rowIndx."C".$colIndx ?></td>  
  21.                         <?php  
  22.                     } ?>  
  23.                 </tr>  
  24.                     <?php  
  25.                 } ?>  
  26.             </tbody>  
  27.         </table>  
  28.         <input id="saveButton" type="button" value="Save"/>  
  29.         <div id="ajaxResponses"></div>  
  30. <script type="text/javascript">
  31.         $(document).ready(function () {
  32.             $("#editTable tbody td").liveeditor({
  33.                 editingCss: 'editing',
  34.  
  35.                 // Scroll to focused editor
  36.                 onEditorFocused: function () {
  37.                     var $window = $(window);
  38.                     var $body = $('html, body');
  39.                     var elem = $(this);
  40.                     var elemTop = elem.offset().top;
  41.                     var elemLeft = elem.offset().left;
  42.                     var windowWidth = $window.width();
  43.                     var windowHeight = $window.height();
  44.                     var docViewTop = $window.scrollTop();
  45.                     var docViewLeft = $window.scrollLeft();
  46.                     var scrollVertical = (elemTop + elem.height() > docViewTop + windowHeight) || (elemTop < docViewTop);
  47.                     var scrollHorizontal = (elemLeft + elem.width() > docViewLeft + windowWidth) || (elemLeft < docViewLeft);
  48.                     if (scrollVertical && scrollHorizontal) {
  49.                         //Scroll diagonally
  50.                         $body.stop()
  51.                             .animate({
  52.                                 scrollTop: (elemTop - windowHeight / 2) + 'px', 
  53.                                 scrollLeft: (elemLeft - windowWidth / 2) + 'px'
  54.                             }, 'fast');
  55.                     } else if (scrollVertical) {
  56.                         //Scroll vertically
  57.                         $body.stop()
  58.                             .animate({
  59.                                 scrollTop: (elemTop - windowHeight / 2) + 'px'
  60.                             }, 'fast');
  61.                     } else {
  62.                         //Scroll horizontally
  63.                         $body.stop()
  64.                             .animate({
  65.                                 scrollLeft: (elemLeft - windowWidth / 2) + 'px'
  66.                             }, 'fast');
  67.                     }
  68.                 },
  69.                 
  70.                 //Track changes on row level
  71.                 onChanged: function () {
  72.                     var row = $(this).closest('tr');
  73.                     if ($('.liveeditor-changed',row).length > 0)
  74.                         row.addClass('changed');
  75.                     else
  76.                         row.removeClass('changed');
  77.                 }
  78.             });
  79.  
  80.             //Save changes
  81.             $('#saveButton').click(function () {
  82.                 $.liveeditor.closeEditor($("#editTable tbody td"));
  83.                 var headers = $('#editTable thead tr th');
  84.                 $('#editTable tbody tr.changed').each(function () {
  85.                     var row = $(this);
  86.                     var data = "row=" + row.attr("row") + "&" + $.liveeditor.serialize($('td', row), headers);
  87.                     $.ajax({
  88.                         type:"POST",
  89.                         url: "ajax.php",
  90.                         data: data,
  91.                         success: function(data){
  92.                             $('#ajaxResponses').append("<p>" + data + "</p>");
  93.                             $.liveeditor.reset($("#editTable tbody td"));
  94.                         }, 
  95.                         error: function(){
  96.                             console.log("Failed to save changes");
  97.                         }
  98.                     });
  99.                 });
  100.             });
  101.         });
  102.  
  103. </script>

ajax.php

 

PHP Code
  1. <?php  
  2.   
  3. $info = array();  
  4. foreach($_POST as $key => $value){  
  5.     $info[] = "$key = $value";  
  6. }  
  7. echo "Storing to DB: ". implode(', '$info);  
  8. //echo "Ajax return";  
  9. //throw new Exception("Ajax error", 404)  
  10. ?>  

 


原文地址: http://www.freejs.net/article_jquerywenzi_166.html

http://www.ppmy.cn/news/429783.html

相关文章

easyExcel工具

注解格式 通过注解定义格式是 EasyExcel 封装的高级功能&#xff0c;可以让我们很方便的定义格式。 格式化内容 先定义一个使用注解格式化内容的实体类&#xff1a; Data public class FormatContentItem { ExcelProperty(value "字符串标题", converter Ti…

EasyExcel合并表头,控制文字大小及样式处理

引入jar <!--引入 阿里的 easyexcel 如果报错 需要引入 asm jar--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.6</ve…

table可编辑表格写法(简单)

1、添加JS $(".table").find(".dbclicktd").bind("dblclick", function () {var input "<input typetext idtemp stylewidth:130px; value" $(this).text() " >";$(this).text("");$(this).append(inpu…

EasyExcel复杂表头的生成方法

一.简介 本篇使用阿里EasyExcel框架&#xff0c;官方文档&#xff1a; https://github.com/alibaba/easyexcel <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></depen…

easyx文字输出汇总

文章目录 前言一、outtextxy()输出文字字符要修改字符集 二、文字特效1.setbkmode设置文字背景2.settextcolor();设置文字颜色用RGB三原色设置用颜色常量3.settextstyle()设置文字样式大小 总结标题最后附上文字动态变色渐变放大输出的代码&#xff1a; 前言 在前面的一系列文…

excel制表基础:规范的制表理念和思路让效率提升 下篇

在日常工作中我们会构建很多的表格&#xff0c;其实这些表格无论多少&#xff0c;都可以归结为三大类&#xff0c;分别为“源数据表”、“关系信息表”和“统计分析表”。上次我们提到了一套表格“统计的核心”——“源数据表”&#xff0c;今天继续为大家分享“关系信息表”和…

动态表格功能

这里写目录标题 需求实现原理代码效果展示 需求 表格由专业班级学号1-10号同学的信息组成&#xff0c;包括:学号、姓名、性别、二级学院、班级、专业、辅导员: 表格的奇数行字体为黑色&#xff0c; 底色为白色&#xff1b;偶数行字体为白色&#xff0c; 底色为黑色: 表格的每…

excel制表基础:规范的制表理念和思路让效率提升 上篇

今天的文章是一篇理论文章&#xff0c;没有函数技巧讲解&#xff0c;没有酷炫图表实例&#xff0c;也没有神奇的VBA教程&#xff0c;如果你想学技巧&#xff0c;那这篇文章不适合你的要求。但是如果你想让自己在使用Excel方面更加地得心应手&#xff0c;能够让构建的表格提高我…