asp+jquery可编辑表格更新到数据库

客户要求后台直接点击修改数据,使用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>

posted @ 2011-05-18 16:03  sky7034  阅读(815)  评论(0编辑  收藏  举报
蘑菇街女装 货运专家