[转]jquery 点击表格变为input可以修改无刷新更新数据

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

之前已经发了2篇类似的文章点击变td为input更新》jquery表格可编辑修改表格里面的值,点击td变input无刷新更新表格》

这篇功能是一样的,不过实用性可能比不上前面的文章

[转]jquery 点击表格变为input可以修改无刷新更新数据
PHP Code
  • <table>  
  • <Tr><Td colspan="2">如果本例看不到数据请先添加一条记录,点击<a href="?action=add">这里可以添加</a></Td></Tr>  
  • <?php  
  • $sql="select * from `add_delete_record` where id>0";  
  • $rs=mysql_query($sql);  
  • if ($row = mysql_fetch_array($rs))  
  • {  
  •     do {  
  • ?>  
  •   
  • <Tr bgcolor="#eeeeee">  
  • <Td><?php echo $row['id']?></Td>  
  • <Td class="bigclassname" ><span title="点击修改"><?php echo $row['text']?></span></Td>  
  • </Tr>  
  • <?php   
  •     }  
  •       
  •     while ($row = mysql_fetch_array($rs));  
  • }?>  
  • </table>  
  • JavaScript Code
  • <script>  
  • /**//*  
  • * 说明:用Jquery的方法,无刷新页面,编辑表格  
  • */   
  •   
  • $(function() {   
  • //给页面中有bigclassname类的标签上加上click函数   
  • $(".bigclassname").click(function() {   
  •   
  • var objTD = $(this);   
  •   
  • //先将老的类别名称保存起来,并用trim方法去掉左右多余的空格   
  • var oldText = $.trim(objTD.text());   
  •   
  • //构造一个input的标签对象(作用是为了让这个input失效,不然点击多次后,文字会消失)   
  • var input = $("<input type='text' value='" + oldText + "' />");   
  •   
  • //当前td的内容变为文本框,并且把老类别名放进去   
  • objTD.html(input);   
  •   
  • //设置文本框的点击事件失效   
  • input.click(function() {   
  • return false;   
  • });   
  •   
  • //设置文本框样式,让界面显示的人性化点   
  • input.css("font-size", "16px");   
  • input.css("text-align", "center");   
  • input.css("background-color", "#ffffff");   
  • input.width("120px");   
  •   
  • //自动选中文本框中的文字   
  • input.select();   
  •   
  • //文本框失去焦点时重新变为文本   
  • input.blur(function() {   
  •   
  • //获得新输入的类别名   
  • var newText = $(this).val();   
  •   
  • //用新的类别名文字替换之前变过来的输入框状态   
  • objTD.html(newText);   
  •   
  • //获取该类别名所对应的ID(bigclassid)   
  • var bigclassid = objTD.prev().text();   
  •   
  • //将新的类别名进行转码,不然界面以及数据库显示的都是"???"这样的乱码   
  • newText = escape(newText);   
  •   
  • //获取要传到"一般处理文件"(update_bigclassname_2.php)中的URL   
  • var url = "update.php? + newText;   
  •   
  • //AJAX异步更改数据库,data为成功后的回调返回值,用于显示提示信息   
  • $.get(url, function(data) {});   
  •   
  • });   
  • });   
  • });   
  • </script>  
  •