利用Ajax对客户端页面的动态增删改查

前两天在做一个网站的后台,我做成员管理一块,发现我负责的这一块有很大的发挥空间,在web2.0时代客户的体验已经被提为最重要的议程,因此网页的流畅度将是网页能够给人带来快捷体验的一个有效途径,利用Ajax实现对数据的增删改查,效果很好....

在客户端脚本在winload时间添加函数初始化xmlHTTP:

function ajaxFunction()
 {

 
 try
    {
   // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
 catch (e)
    {

  // Internet Explorer
   try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
   catch (e)
      {

      try
         {
         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
         }
      catch (e)
         {
         alert("您的浏览器不支持AJAX!");
         return false;
         }
      }
    }
 xmlHttp.onreadystatechange=function(){
  if(xmlHttp.readyState==4)
  {
   back_check();
  }
  
 }
 }

这样就可以保证在每次使用xmlHTTP时都有对象可用(就是这个意思~~~可能有点乱)然后在每次使用完xmlHTTP之后都调用一次Ajaxfunction就可以了呵呵.

在表格控制方面,利用dom对象对表格的处理.在单击修改按钮时,调用一下函数,并弹出隐藏的层,将数据加载到层中:

function info_update_input(index,id)
{
 state=0;
 //弹出隐藏的层
  document.getElementById("middle").style.display="block";
  document.getElementById("info_add").style.display="block";
  document.getElementById("info_add").style.left="30";
  document.getElementById("info_add").style.top="50";
  document.getElementById("hidden").value=id;//使数据的id添加到层的隐藏域中,以便以后使用...
  for(var i=0;i<=3;i++)//将表格中的数据加载到层中
 {
   
   
    document.getElementById("input_"+i).value=document.getElementById("tb_"+id).cells[i+1].innerHTML;
 }
 }

单击层中的确定按钮后一下函数被调用,数据被返回到服务器,对数据进行修改:

function info_add_post(index,id)
{
 if(state==0)
 {
  alert(state);
  index=2;
  id=document.getElementById("hidden").value;
 }
 var str="test.php?index="+index+"&id="+id;
 for(var i=0;i<=3;i++)
 {
   
    str+="&d_"+i+"="+document.getElementById("input_"+i).value;
    info[i]=document.getElementById("input_"+i).value;
 }
 alert(str);
 xmlHttp.open("GET",str);
 xmlHttp.send(null);
 }
 function end_add()
 {
  document.getElementById("middle").style.display="none";
  document.getElementById("info_add").style.display="none";
  document.getElementById("mem_manager").insertRow(document.getElementById("mem_manager").rows.length).innerHTML="<td>hang</td>";
  }

服务器处理完后,返回处理的id值(由于这是我的源码扒下来的呵呵,所以还有操作索引值.index,以确定是增删改查的那一项)

function back_check()
{
 
 var reStr=xmlHttp.responseText;
 //document.write(reStr);
 var index=reStr.charAt(0);
 alert(reStr);
 if(index=="1")
 {
 document.getElementById("mem_manager").deleteRow(document.getElementById("tb_"+document.getElementById("hidden").value).rowIndex);
  }
   else if(index=="2")
   {
  
 info_update();
 //alert(document.getElementById("tb_"+reStr.charAt(2)).cells[0].innerHTML);
 }
 
 else if(index=="3")
 {
  end_add();
  }
 
 ajaxFunction();
 }
function info_update()
{
 document.getElementById("middle").style.display="none";
 document.getElementById("info_add").style.display="none";
 document.getElementById("mem_manager").deleteRow(document.getElementById("tb_"+document.getElementById("hidden").value).rowIndex);
 //document.getElementById("mem_manager").rows[2].innerHTML="sdfsdfsdfsdf";
 //alert(document.getElementById("mem_manager").rows[2].innerHTML);
 var new_row=document.getElementById("mem_manager").insertRow(document.getElementById("mem_manager").rows.length-1);
 //new_row.style.height="10px";
 //new_row.innerHTML="<td><input type='text' size=5 maxlength=5 /></td>";
 new_row.id="tb_"+document.getElementById("hidden").value;
 new_row.style.backgroundColor="#D7EBFF";
 new_row.insertCell(0).innerHTML="<input type='checkbox'/>";
 for(var i=1;i<5;i++)
 {
  new_row.insertCell(i).innerHTML=info[i-1];
  }
 new_row.insertCell(5).innerHTML="<input type=/"button/" value=/"删除/" οnclick=/"info_check(1,"+document.getElementById("hidden").value+")/"/>";
 new_row.insertCell(6).innerHTML="<a href='#' οnclick=/"info_update_input(2,"+document.getElementById("hidden").value+")/">修改</a>";
 //new_row.innerHTML="<td>df</td>";
 }

这样整个修改过程就算结束啦,由于是我临时写的,而且我水平并不高,所以代码看着有点乱,希望能对用的找的朋友一些启发.想要源码可以留言我发给你呵呵~~~

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值