이 예는 시나리오에 적용 가능합니다. 사용자 세부 정보 등 세부 정보를 보고 일부 필드 정보를 수정해야 하는 경우 필드 내용을 직접 클릭하여 수정할 수 있어 사용자의 시간을 절약할 수 있습니다. (기존 방법은 편집기 페이지에 들어가서 편집된 모든 필드 정보를 나열하는 것입니다. 한두 개의 필드 내용만 편집해야 하는 경우에도 그런 다음 제출을 클릭하면 됩니다.) 웹 응답 속도가 향상되어 프런트엔드 사용자가 향상됩니다. 경험.
이 예제는 jquery 라이브러리를 사용하며 다음 기능을 갖춘 플러그인을 기반으로 합니다.
실시간 편집, 백그라운드에서의 실시간 응답 및 즉각적인 부분 새로 고침.
입력 양식 유형은 사용자 정의할 수 있습니다. 현재 jeditable은 텍스트, 선택 및 텍스트 영역 유형을 제공합니다.
키보드의 Enter 및 ESC 키에 응답합니다.
플러그인 메커니즘인 이 예는 jquery ui의 datepicker 달력 제어와의 통합을 제공합니다.
아래에서는 구현 프로세스를 단계별로 설명하겠습니다.
XHTML
다음과 같은 양식을 작성해야 합니다.
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <thead> <tr class="table_title"> <td colspan="4"><span class="open"></span>客户信息</td> </tr> </thead> <tbody> <tr> <td width="20%" class="table_label">姓名</td> <td width="30%" class="edit" id="username">李小三</td> <td width="20%" class="table_label">办公电话</td> <td width="30%" class="edit" id="phone">021-12345678</td> </tr> <tr> <td class="table_label">称谓</td> <td class="edit" id="solutation">先生</td> <td class="table_label">手机</td> <td class="edit" id="mobile">13800138000</td> </tr> <tr> <td class="table_label">公司名称</td> <td class="edit" id="company">常丰集团</td> <td class="table_label">电子邮箱</td> <td class="edit" id="email">lrfbeyond@163.com</td> </tr> <tr> <td class="table_label">潜在客户来源</td> <td class="edit_select" id="source">公共关系</td> <td class="table_label">有限期</td> <td class="datepicker" id="sdate">2011-11-30</td> </tr> <tr> <td class="table_label">职位</td> <td class="edit" id="job">部门经理</td> <td class="table_label">网站</td> <td class="edit" id="web">www.helloweba.com</td> </tr> <tr> <td class="table_label">创建时间</td> <td>2010-11-04 21:11:59</td> <td class="table_label">修改时间</td> <td id="modifiedtime">2010-11-05 09:42:52</td> </tr> <tr> <td class="table_label">备注</td> <td class="textarea" id="note" colspan="3">备注信息</td> </tr> </tbody> </table>
코드를 보면 응답 필드 정보의 td에 class와 id 속성이 부여되고 값이 할당된 것을 확인할 수 있습니다. 테이블의 td에 해당하는 id 값은 데이터베이스의 필드 이름과 1:1로 대응된다는 점을 언급할 필요가 있습니다. 이는 편집 중에 배경이 해당 필드 정보를 얻을 수 있도록 하기 위한 것입니다. 이에 대해서는 다음에서 설명합니다. 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의 경우 페이지의 93f0f5c25f18dab9d176bd4f6de5d30e
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.jeditable.js"></script>
$(function(){ $('.edit').editable('save.php', { width :120, height :18, //onblur : 'ignore', cancel : '取消', submit : '确定', indicator : '<img src="loader.gif">', tooltip : '单击可以编辑...' }); });
Jeditable은 또한 선택, 텍스트 영역 유형 편집을 제공하고 플러그인 API 인터페이스를 제공합니다.
드롭다운 선택 상자 선택 처리를 살펴보겠습니다.
$('.edit_select').editable('save.php', { loadurl : 'json.php', type : "select", });
$array['老客户'] = '老客户'; $array['独自开发'] = '独自开发'; $array['合作伙伴'] = '合作伙伴'; $array['公共关系'] = '公共关系'; $array['展览会'] = '展览会'; print json_encode($array);
$('.edit_select').editable('save.php', { data : " {'老客户':'老客户','独自开发':'独自开发','合作伙伴':'合作伙伴', '展览会':'展览会'}", type : "select", });
텍스트 영역 유형은 더 이상 대부분이 아닙니다. 유형 유형을 텍스트 영역으로 변경하면 됩니다. 추신: 기본 유형은 텍스트입니다.
날짜 유형을 다룰 때 jquery ui 캘린더 플러그인을 연결했습니다. 물론 juqery ui 플러그인과 스타일을 소개하는 것도 잊지 마세요.
<link rel="stylesheet" type="text/css" href="css/jquery-ui.css" /> <script type="text/javascript" src="js/jquery-ui.js"></script>
$.editable.addInputType('datepicker', { element : function(settings, original) { var input = $('<input class="input" />'); input.attr("readonly","readonly"); $(this).append(input); return(input); }, plugin : function(settings, original) { var form = this; $("input",this).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(emptyempty($val)){ echo "不能为空"; }else{ //更新字段信息 $query=mysql_query("update customer set $field='$val',modifiedtime='$time' where id=1"); if($query){ echo $val; }else{ echo "数据出错"; } }
이로써 편집 가능한 양식이 완성되었습니다. 하지만 아직 끝나지 않았습니다. 입력된 정보의 유효성 검증에 대한 후속 글을 첨부할 예정이니 지켜봐 주시기 바랍니다.