用ajax向后台传参的几种方式

xiaoxiao2021-02-28  74

用ajax传参的几种方式

写了个小项目,中间用ajax传参浪费了很多时间。总结一些传参的方法分享给大家。

一个参数

第一种方法 以下所有方法中本人用的JavaScript中data属性 ,你也可以直接获取value值 都可以贴个例子

<td style="display:none;" data-c="${exam.sid }">${exam.sid }</td>

//取值的时候这么写就可以了 注意括号中的值必须和-后的值一致 var sid=$(this).data("c"); url:"", type:"get", data:{"id":id}, success:function(data){ }

第二种方法 //取值的方法同上 url:"${basePath}/editPassword.html?no="+no

多参数的方法

赋值方法如下

<a class="addTest" href="javascript:void(0)" data-a="${exam.id }" data-b="${exam.cid }" data-c="${exam.sid }"><button class="layui-btn layui-btn-warm">录入成绩</button></a>

取值方法如下 var id=$(this).data("a");--- var cid=$(this).data("b"); var sid=$(this).data("c");

传参方法 url:"/scoreAdd.html?cid="+cid+"&id="+id+"&sid="+sid 还有一种序列化方法 直接序列化成对象传递参数 body代码如图所示(注意name的值必须和对象的属性一样) form id=”f” action=”” method=”post”>

<input type="text" name="no" value="${sm.no }" /> <input type="hidden" name="cid" value="${sm.cid}"/> $.ajax({ url:"${basePath}/studentEdit.html", type:"post", dataType:"text", data:$("#f").serialize(), success:function(){ } });

传递多个对象的方法

var list=[]; for(var i=0;i<'${fn:length(addScore)}';i++){ var student=new Object(); //student.sno=$(".sno").eq(i).text(); //student.sname=$(".sname").eq(i).text(); student.sud=$(".sud").eq(i).text(); student.score=$(".score").val(); student.eid=$(".eid").val(); student.sid=$(".sid").val(); student.cid=$(".cid").val(); list[i]=student; } console.log(JSON.stringify(list)); $.ajax({ url : "${basePath}/addScore.html", data : {'students':JSON.stringify(list)}, type:"post", dataType : "text", success : function(data) { if(data>'0'){ alert("录取成绩成功"); }else{ alert("成绩添加失败"); } } });

后台使用jackson 接受的 jsonobject也可以

List<AddStudentScore> list=null; ObjectMapper om=new ObjectMapper(); System.out.println(students); try { list=om.readValue(students, new TypeReference<List<AddStudentScore>>() {});
转载请注明原文地址: https://www.6miu.com/read-77041.html

最新回复(0)