做个笔记,以防忘记。新手一个,欢迎补充。
需求:
通过ajax后台获取json格式数据,添加到table中,每条数据后面加添加、删除和修改功能。添加和修改用模态框实现。
遇到的问题:
在点击修改的时候如何获取该条用户的信息,显示在模态框的相应input中
解决办法(三种):
1.方法一(推荐):
在生成表格的时候给修改的链接上添加一个属性(如userID=userId),然后给链接上绑定方法,在方法中获取ID,用ajax访问后台查询数据显示在模态框里。
例子
//给表格添加ID
<tbody id="appList">
</tbody>
//ajax请求数据并添加到table里
$.get("../../../admin/findAllApp", { username: "", password: ""},
function(data){
var obj = JSON.parse(data);
var list="";
for(var i=0; i<obj.length; i++){
list=list+"<tr><td>"+obj[i].id+"</td><td>"+obj[i].appId+"</td>"
+"<td>"+obj[i].appSecret+"</td>"
+"<td>"+obj[i].url+"</td>"
+"<td>"+obj[i].appDate+"</td>"
+"<td>"
+"<a href='../../../admin/deleteApp?id="+obj[i].id+"'>删除</a>"
+"<a onclick='func(this.id)' id='"+obj[i].id+"' data-toggle='modal' class='btn btn-primary btn-large' id='change'>修改</a>"
+"</td></tr> "
}
$("#appList").html(list);
});
//当点击修改时触发函数func()
function func(a){
$.get()//方法后台获取数据添加到模态框中
$("#myModal").modal('show');//显示模态框
}
方法二(也推荐):
类似方法一,在生成表格的时候给修改的链接上添加所有需要的内容(如userID=userId,username=username),然后给链接上绑定方法,在方法中获取所需的值
//与方法一类似,不同之处
+"<a onclick='func(this)' id='"+obj[i].id+"' appId='"++"' data-toggle='modal' class='btn btn-primary btn-large' id='change'>修改</a>"
//点击事件
function func(a){
this.id //获取id值
this.appId //获取appId
//添加到模态框中(略)
$("#myModal").modal('show');//显示模态框
}
方法三:
链接上绑定方法,传递this,通过获取其父标签和兄弟标签获取所需的参数
//获取数据和方法一一样
//绑定的方法
function func(a){
//.parent()取其父标签;.prev()取其上一个兄弟标签
$("#"+a).parent().prev().prev().text()
//添加到模态框中(略)
$("#myModal").modal('show');//显示模态框
}
虽然方法有点笨,但总归能实现功能(笑脸)