jQuery+PHP怎么实现实时编辑表格字段内容
创始人
2024-12-16 16:22:03
0次

本例适用场景:当查看详细资料,如用户详情信息,发现其中某几个字段信息需要修改,可直接点击该字段内容进行修改,节约了用户时间,(传统的做法是进入一个编辑页面,列出所有编辑的字段信息,即使你只需要编辑其中一两个字段内容,然后点击提交)提高了WEB响应速度,从而提高了前端用户体验。

本例依赖jquery库,并基于jeditable插件,具有以下特点:

  • 实时编辑,后台实时响应,并即时完成局部刷新。    可自定义输入表单类型,目前jeditable提供text,select,textarea类型。    响应键盘的回车和ESC键。    插件机制,本例提供与jquery ui的datepicker日历控件的整合。

  • 下面我们来一步步讲解实现过程。

    XHTML

    我们需要制作一个表格,如下:


                                                                                                                                                                                                                                             
    客户信息
    姓名李小三办公电话021-12345678
    称谓先生手机13800138000
    公司名称常丰集团电子邮箱lrfbeyond@163.com
    潜在客户来源公共关系有限期2011-11-30
    职位部门经理网站www.xuebuyuan.com
    创建时间2010-11-04 21:11:59修改时间2010-11-05 09:42:52
    备注备注信息


    这是一个用户信息的表格,从代码中可以发现响应的字段信息的td都给了一个class和id属性,并赋值。值得一提的是表格中的td对应的id的值是和数据库中的字段名称一一对应的,这样做就是为了在编辑时让后台获取相应的字段信息,后面的PHP代码中会讲到。

    CSS

    table{width:96%; margin:20px auto; border-collapse:collapse;} table td{line-height:26px; padding:2px; padding-left:8px; border:1px solid #b6d6e6;} .table_title{height:26px; line-height:26px; background:url(btn_bg.gif) repeat-x bottom; font-weight:bold; text-indent:.3em; outline:0;} .table_label{background:#e8f5fe; text-align:right; }


    CSS渲染了表格样式,让表格看起来更舒服点。

    jQuery

    提到jquery,一定要记住在页面的之间要引用jquery和jeditable插件



    然后开始调用插件。


    $(function(){ $('.edit').editable('save.php', { width     :120, height    :18, //onblur    : 'ignore',         cancel    : '取消',         submit    : '确定',         indicator : '',         tooltip   : '单击可以编辑...'     }); });


    jeditable插件提供了很多属性和方法的调用。可以设置宽度,高度,按钮的文本信息,提交时的加载图片,鼠标滑上的提示信息等等。save.php是编辑后的信息最终提交的后台程序的地址。现在看看是不是表格中的信息可以编辑了哦。


    jeditable还提供了select,textarea类型的编辑,并提供插件api接口。


    来看下拉选择框select的处理:


    $('.edit_select').editable('save.php', { loadurl   : 'json.php', type      : "select", });


    type指定的是select类型,select里加载的数据来自json.php,json.php提供了下拉框所需的数据源。


    $array['老客户'] =  '老客户'; $array['独自开发'] =  '独自开发'; $array['合作伙伴'] =  '合作伙伴'; $array['公共关系'] =  '公共关系'; $array['展览会'] =  '展览会'; print json_encode($array);


    这些数据是直接存在json.php文件里的,当然你也可以通过读取数据库信息,然后生成json数据,关于如何生成json数据,请查看PHP中JSON的应用。还有一种方法是直接在editable中指定data:


    $('.edit_select').editable('save.php', { data : " {'老客户':'老客户','独自开发':'独自开发','合作伙伴':'合作伙伴', '展览会':'展览会'}", type : "select", });


    不难发现,其实上述代码中的data就是一串json数据。


    textarea类型就不再多数,将type类型改为textarea就可以了。PS:默认类型为text。


    当处理日期类型时,我接入了一个jquery ui的datepicker日历插件,当然别忘了要引入juqery ui插件和样式:



    接入jquery ui的datepicker日历插件


    $.editable.addInputType('datepicker', {    element : function(settings, original) {        var input = $(''); input.attr("readonly","readonly");        $(this).append(input);        return(input);    },    plugin : function(settings, original) { var form = this; $("input",this).datepicker();    } });


    调用的代码直接指定type类型为datepicker即可。


    $(".datepicker").editable('save.php', { width     : 120, type      : 'datepicker', onblur    : "ignore", });


    现在看看,表格中的“有限期”字段的日期是不是可以修改了。好了,还有其他更多的插件接入期待您的加入。

    PHP

    编辑好的字段信息会发送到后台程序save.php程序处理。save.php需要完成的工作是:接收前端提交过来的字段信息数据,并进行必要的过滤和验证,然后更新数据表中相应的字段内容,并返回结果。


    include_once("connect.php"); //连接数据库 $field=$_POST['id'];  //获取前端提交的字段名 $val=$_POST['value']; //获取前端提交的字段对应的内容 $val = htmlspecialchars($val, ENT_QUOTES); //过滤处理内容 $time=date("Y-m-d H:i:s"); //获取系统当前时间 if(empty($val)){    echo "不能为空"; }else{    //更新字段信息 $query=mysql_query("update customer set $field='$val',modifiedtime='$time' where id=1"); if($query){   echo $val; }else{   echo "数据出错"; } }


    再回到开始的HTML代码,表格中显示的字段内容信息当然是从数据库读取来的,所以要用PHP读取数据表,把内容显示出来就OK,详细过程大家自己写一个吧。


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...