这个功能用到的方式就是:
①首先获得选中复选框的那一行或者多行数据,这个用,具体的代码要看你的网站结构通过jquery选择器和each循环都可以获得。
$("input:checkbox[name='the checkbox name']:checked")....②在each循环中,把获取到的每一行,每个单元格的数据,通过jquery的append()的方法,动态创建,添加到另一个表格中即可。插入的位置可以用不同的方法,append()是追加到后面。还有一些insertbefore()等可参见jquery文档。
提供你2中思路,具体代码就不写了生成表的时候给修改链接一个id,id保存当前行的主键比如id="tid"+主键,为它添加onclick方法,
var id=this.id.replace("tid","")获取到主键
把主键拿到数据库中查到相应的数据行,赋值给表单,完成!
var parents=$(this).parent().parent() 获得tabel行
$(parents).find("td").each(function(){
根据列的顺序赋值给相应的表单元素
})
这个方法有局限性,数据是从当前页面中取得并不是实时读取数据库,如果数据在他处有更改是取不到最新的数据的。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script type="text/javascript" src="xlsx.core.min.js"></script>
<script>
window.onload=function(){
$('#excel-file').change(function(e) {
var files = e.target.files
var fileReader = new FileReader()
fileReader.onload = function(ev) {
try {
var data = ev.target.result,
workbook = XLSX.read(data, {
type: 'binary'
}), // 以二进制流方式读取得到整份excel表格对象
persons = [] // 存储获取到的数据
} catch (e) {
console.log('文件类型不正确')
return
}
// 表格的表格范围,可用于判断表头是否数量是否正确
var fromTo = ''
// 遍历每张表读取
for (var sheet in workbook.Sheets) {
if (workbook.Sheets.hasOwnProperty(sheet)) {
fromTo = workbook.Sheets[sheet]['!ref']
console.log(fromTo)
persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]))
// break // 如果只取第一张表,就取消注释这行
}
}
console.log(persons)
//将persons赋值给要展示的表格数组里即可展示在界面
}
// 以二进制方式打开文件
fileReader.readAsBinaryString(files[0])
})
}
</script>
</head>
<body>
<input type="file" id="excel-file">
</body>
</html>
还有就是存在数据库里再拿出来显示。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)