ajax实现在直接在表格中修改数据

本文介绍了一个使用JavaScript实现的价格编辑器功能,该功能允许用户通过点击产品价格来编辑,并且能够将更改提交到服务器进行更新。文章展示了具体的实现代码,包括HTML结构、客户端脚本以及服务器端的数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script type="text/javascript">
var req;
var gID;
function changeToInput(id) {
 var oNP = document.getElementById(id);
 var value = oNP.value;

//outerHTML把oNP对象整个替换掉
 oNP.outerHTML = "<input type='text' id='" + id + "' value='" + value + "' size='5' onblur='change(this.id)'>";
 document.getElementById(id).focus();
}

function change(id) {
 var oNP = document.getElementById(id);
 var value = oNP.value;
 gID = id;
 init();

//提交数据到修改数据的页面修改
 var url = "ChangePrice.jsp?id=" + escape(id) + "&normalprice=" + value;
 req.open("GET", url, true);
 req.onreadystatechange = callback;
 req.send(null);
 
}

function init() {
 if(window.XMLHttpRequest) {
  req = new XMLHttpRequest();
 } else if (window.ActiveXObject) {
  req = new ActiveXObject("Microsoft.XMLHTTP");
 }
}

function callback() {
 if(4 == req.readyState) {
 
  if(200 == req.status) {
 
   var oNP = document.getElementById(gID);
   var value = oNP.value;
   oNP.outerHTML = "<span style='background:gray' id='" + gID + "' value='" + value + "' onclick='changeToInput(this.id)'>" + value + "</span>";
  }
 }
 
}

</script>

 

 

<%
 for (int i = 0; i < products.size(); i++) {
  Product p = products.get(i);
%>

<tr>
 <td class="altbg2" align="center">
  <!-- 复选框 -->
  <input type="checkbox" name="id" value="<%=p.getId()%>"/>
 </td>
 <td class="altbg1" align="center" nowrap="nowrap">
  <%=p.getId()%>
 </td>
 <td class="altbg2" align="center">
  <%=p.getName()%>
 </td>
 <td class="altbg1" align="center">
  <%=p.getDescr()%>
 </td>
 <td class="altbg1" align="center">
  <span id="<%=p.getId()%>" style="background:red" onclick="changeToInput(this.id)" value="<%=p.getNormalPrice() %>">
   <%=p.getNormalPrice() %>
  </span>
 </td>
 <td class="altbg1" align="center">
  <%=p.getMemberPrice()%>
 </td>
 <td class="altbg1" align="center">
  <%=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
    .format(p.getPdate())%>
 </td>
 <td class="altbg1" align="center">
  <%//=CategoryService.getInstance().loadById(p.getCategoryId()).getName()%>
  <%=p.getCategory().getName()%>
 </td>
 <td class="altbg1" align="right">
  <a target="detail" href="ProductDelete.jsp?id=<%=p.getId()%>" onclick="return confirm('真的要删?')">删</a>
  <a target="detail" href="ProductModify.jsp?id=<%=p.getId()%>">改</a>
  <a target="detail" href="ProductUpload.jsp?id=<%=p.getId()%>">上传</a>
 </td>
</tr>

<%
}
%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值