客戶要求後台直接點擊修改資料,使用jquery可以很容易實現,不過過程中還不是那麼順利,調試的過程中,發現要引入js指令碼,必須使用
type="text/javascript"而不是language="javascript"或者type="javascript"。
1.這裡為了方便示範,就靜態顯示資料了;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JQuery實現可編輯的表格</title>
<link href="editTable.css" rel="stylesheet" type="text/css" />
<script src="jquery.js" type="text/javascript"></script>
</head>
<body>
<table>
<tr><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th></tr>
<tr>
<td >1235467</td>
<td >987654321</td>
<td >987654321</td>
<td >123546789</td>
<td > 987654321</td>
</tr>
<tr>
<td >12354678</td>
<td >987654321</td>
<td >987654321</td>
<td >123546789</td>
<td > 987654321</td>
</tr>
<tr>
<td >123546789</td>
<td >987654321</td>
<td >987654321</td>
<td >123546789</td>
<td > 987654321</td>
</tr>
</table>
</body>
</html>
<script type="text/javascript">
$(function(){ //相當於在頁面中的body標籤加上onload事件
//找到所有的td節點
var tds=$("td");
//給所有的td添加點擊事件
tds.click(function(){
//獲得當前點擊的對象
var td=$(this);
//取出當前td的常值內容儲存起來
var oldText=td.text();
//建立一個文字框,設定文字框的值為儲存的值
var input=$("<input type='text' value='"+oldText+"'/>");
//將當前td對象內容設定為input
td.html(input);
//設定文字框的點擊事件失效
input.click(function(){
return false;
});
//設定文字框的樣式
input.css("border-width","0");
input.css("font-size","16px");
input.css("text-align","center");
//設定文字框寬度等於td的寬度
input.width(td.width());
//當文字框得到焦點時觸發全選事件
input.trigger("focus").trigger("select");
//當文字框失去焦點時重新變為文本
input.blur(function(){
var input_blur=$(this);
//儲存當前文字框的內容
var newText=input_blur.val();
td.html(newText);
});
//響應鍵盤事件
input.keyup(function(event){
// 擷取索引值
var keyEvent=event || window.event;
var key=keyEvent.keyCode;
//獲得當前對象
var input_blur=$(this);
switch(key)
{
case 13://按下斷行符號鍵,儲存當前文字框的內容
var newText=input_blur.val();
td.html(newText);
var tdchs = td.parent("tr").children("td");
var i = tdchs.eq(0).text();
var c = td.attr("name");
$.post("save.asp?id="+i+"&column="+c+"&value="+newText,null,function(data){
alert(data);
});
break;
case 27://按下esc鍵,取消修改,把文字框變成文本
td.html(oldText);
break;
}
});
});
});
</script>
2.更新到資料庫save.asp
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />
<TITLE>編輯通訊錄</TITLE>
<link rel="stylesheet" href="Images/CssAdmin.css">
<script type="text/javascript" src="../Script/Admin.js"></script>
</HEAD>
<!--#include file="../Include/Const.asp" -->棋牌
<!--#include file="../Include/ConnSiteData.asp" -->
<BODY>
<%
dim id,col,val
id = Request.QueryString("id")
col = Request.QueryString("column")
val = Request.QueryString("value")
dim rs
set rs = server.createobject("adodb.recordset")
sql="select * from Ameav_Contact where ID = "&id
rs.open sql,conn,1,3
rs(col) = val
rs.update
rs.close
set rs=nothing
response.write "updated"
%>
</body>
</html>