function showHint(ip,mask,gw,dns)
{
$.ajax({
type:"GET",
url:"/terminal/terminalUpdate.do", 
data:"ip"+ip+"mask"+mask+"gateway"+gw+"DNS"+dns,
success:function(data){
     document.getElementById("item").innerHTML=data;
},
async:true,   
error:function(){
alert("请求失败");
}
});
}
上面为ajax函数,下面为页面部分
<tbody>
<s:iterator value="list" id="item" status="st">
<tr>
<td><s:property value="EEE"></s:property></td>
<td><s:property value="#st.index+1" ></s:property></td>
<td><s:property value="STATUS"></s:property></td>
<td><s:property value="SN"></s:property></td>
<td><input value="<s:property value="IP"></s:property>"></td>
<td><s:property value="DEST"></s:property></td>
<td><input value="<s:property value="MASK"></s:property>"></td>
<td><input value="<s:property value="GW"></s:property>"></td>
<td><input value="<s:property value="DNS"></s:property>"></td>
<td><button  onclick="showHint()"><span>修改</span></button></td>
</tr>
</s:iterator>
</tbody>
我的目的,可以修改input的属性值,用ajax提交,但是我页面会遍历出很多条来,怎么可以提交我修改的那条,貌似我ajax函数,还有传参的地方有问题,望高手指教我这菜鸟,越详细越好!谢谢~ajaxjspiteratorfunction

解决方案 »

  1.   

    data:"ip"+ip+"mask"+mask+"gateway"+gw+"DNS"+dns,这里的参数格式不对
    改成
    data:"ip="+ip+"&mask="+mask+"&gateway="+gw+"&DNS="+dns,
      

  2.   

    就是扫描所连接的所有终端,返回了这些终端的ip,mac,mask,dns等,现在,我在现实这些数据中添加一个修改功能,用ajax触发修改某一个终端的所有信息的action。怎么触发当前修改的那条,并传那几个参数过去。
    我写了些,感觉写的有问题,望高手指正!
      

  3.   

    那我其他的地方还有问题么?<td><button  onclick="showHint()"><span>修改</span></button></td>这样写,修改后的数据会显示在页面上面,我希望显示修改完后的数据
      

  4.   


    data:"ip"+ip+"mask"+mask+"gateway"+gw+"DNS"+dns,多参好像是这样吧:
    data : {"ip":ip,"mask":mask,"gateway":gw,"DNS":dns},
      

  5.   

    修改把参数传进去:
    <td><button  onclick="showHint('<s:property value="ip"></s:property>','<s:property value="mask"></s:property>','<s:property value="gateway"></s:property>','<s:property value="DNS"></s:property>')"><span>修改</span></button></td>
      

  6.   

    这个我刚好看到了,上面的是get方法提交,后面是post提交
      

  7.   

    楼上参数格式data : {"ip":ip,"mask":mask,"gateway":gw,"DNS":dns}一直在用。
    更新只能全体更新吧。多条的话,参数会以数组形式传到后台。
      

  8.   

    两种写法都可以但是第二种写法jquery内部还有将他转换为第一种格式的
      

  9.   

    修改成功后success:function(data){
         document.getElementById("item").innerHTML=data;
    },
    是不是这样就可以只刷新我那条修改的数据了?
      

  10.   

    params="username="+username+"&password="+password;
    后台取得:
    String username=request.getParameter("username");
    String password=request.getParameter("password");
    我只知道这种..........................
      

  11.   

    你修改的数据是在一个list中,而传回来的也是一个list,刷新的是整个list
      

  12.   

    问题是我只想刷新我修改的那个终端的所有信息或者修改的信息,success:function(data){
         document.getElementById("item").innerHTML=data;
    },这样写可以么?
      

  13.   

    同时更新多条的话  用JSON应该可以做,把要修改的数据封装成JSON把 id,ip,mask,gateway,dns封装成JSON格式
      

  14.   

    无需多条,只需一个终端信息一个个修改,每个终端信息有id,ip,mask,gateway,dns等,后面再加一个修改按钮。我上面经过各位大神的修改就可以了么?等等我试试~谢
      

  15.   


    好像不能只刷新list中的一部分数据吧?其实刷新只是将所有数据再读一遍而已,并没有改动未修改的数据遍历list 的话 你应该用JSON数据吧 
      

  16.   

    额,好像离我要问的远了点,我可以加你qq问下么大神?我qq:516055717
      

  17.   

    success:function(data){
         document.getElementById("item").innerHTML=data;
    },这个我貌似获取不到,不能显示修改后的参数...
      

  18.   

    楼主的需求无非就是更新table里的内容。
    楼主可以在success方法里把data的数据弄成tr td就行了success:function(data){
       var content="";
       for(var i=0;i<data.length;i++){//迭代这个json数组拼凑成html脚本各个值对应到各个td
          content+="<tr>"+
                   "<td>"+data[i].IP+"</td>"+
                   "<td>"+data[i].SN+"</td>"+
                   "<td>"+data[i].MASK+"</td>"+
                   "<td>"+data[i].DEST+"</td>"+
                   "<td>"+data[i].DNS+"</td>"+
                   "<td>"+data[i].GW+"</td>"+
                   "</tr>";
       }
       $("#tableId").html(content);//将这个表格的内容改成content的html脚本
    }
      

  19.   

    貌似不行,我以前的list中的数据貌似取不到了~~,我先自己再想想看,多谢各位大神帮助~