在html中table的提交,如何提交table中的数据

博客探讨了在面试中遇到的关于HTML表格数据传递的问题。主要内容包括理解需求、数据结构设计、DOM操作以及与后台数据交换的方式。提出了使用contenteditable属性优化HTML表格,减少不必要的input元素,同时讨论了数据绑定在用户交互上的重要性,建议数据结构应以数组形式表示,方便后台处理。此外,还提及了与面试官探讨实际需求的重要性。
摘要由CSDN通过智能技术生成

RE题主评论:

这样逻辑就正常了(和我在加分项里说的一致),一开始以为是传递死数据呢。

其实也不用input了,对于html结构优化来说,每个td里再放input,会增加页面大小并且会再设置input的css样式,所以设置td属性为 contenteditable="true" //H5新增

就可在上面回答的基础上达到最小修改。(但是考虑兼容的话还是得input)

以下是原回答

既然是面试题,注重的肯定是思路而不是具体,而思路是否清晰就是你对技能掌握情况的体现

对我而言,达到题目要求的步骤如下(顺便反向分析一波考点):

1.确定需求,是需要传递表格中的内容(考点1,明确需求)

2.封装表格的内容,因为我们现在看到的内容是立体的,所以需要将其扁平化,封装成程序能识别的数据,这点就涉及到数据结构的设计(考点2,数据结构设计)

3.如何取出内容并进行封装,这里无非是遍历表格tbody的tr和td,这就是对dom的操作了(考点3,dom操作)

4.根据后台处理数据的需要(贴合实际),以何种方式向后台传递(考点4,与后台同事的交流)

下面这点可以当做拓展和面试官进行交流,算是加分项,也是体现自己对交互的注重:

向面试人员提问,为何需要从table中读取数据,了解真正的需求而不是操作需求后,才能更便于理解这么做的意义。

从个人经验来说,这个需求的目的一般是绑定在用户交互上,所以实际业务中应该是在td中以input展示数据,便于用户修改。如果数据都是自己提供的而用户不能修改,那么此数据传递回后台并无意义,因为是“死数据”。

数据结构建议如下,一个tr就代表一条记录,也就是对应数组中的一个元素,这样后台拿到后也可能很方便的存入数据库中。

var data = [{

name:'x1',

yuwen: 75,

math: 66

},{

name:'x1',

yuwen: 75,

math: 66

}]

然后发送请求的时候将其JSON.stringify(data)字符化就可以了

在网页,如果你想要从表格(table选择数据并通过`indexOf`方法处理并在用户点击时提交到新页面,你需要做以下几个步骤: 1. **获取表单数据**: 首先,获取表格内的数据。你可以遍历表格的行和列,构建一个数组或者对象,每个元素对应表格的一条记录。例如,假设表格的第一列存储索引,第二列存储名称,可以用如下jQuery代码: ```javascript let tableData = []; $('#yourTableId tbody tr').each(function(index, row) { let rowData = {}; rowData.index = $(row).find('td:eq(0)').text(); // 获取索引 rowData.value = $(row).find('td:eq(1)').text(); // 获取其他列的数据 tableData.push(rowData); }); ``` 2. **处理选择**: 确定用户选择了哪些数据,可以设置一个筛选条件或者使用`indexOf`方法检查特定值。例如,如果用户选择了所有索引大于某个值的数据: ```javascript const selectedIndices = tableData.filter(row => parseInt(row.index, 10) > yourCondition).map(row => row.index); ``` 3. **创建查询参数**: 根据选择的数据创建一个URL查询参数,可以使用`encodeURIComponent`函数对索引值进行编码: ```javascript let encodedIndices = selectedIndices.map(index => encodeURIComponent(index)).join('&indices='); ``` 4. **提交到新页面**: 调用`window.open()`或者`window.location.href`来跳转到新页面,并将查询参数附加到URL: ```javascript let url = 'newPage.html?' + encodedIndices; window.open(url, '_blank'); // 打开新标签页 // 或者 window.location.href = url; ``` 5. **新页面接收数据**: 新页面加载后,可以从URL查询参数解码并提取数据。这取决于后端语言,如果是服务器端如PHP、Node.js等,可以在请求解析时获取;如果是前端SPA(Single Page Application),可以使用JavaScript的URLSearchParams API。 请注意,上述示例假设`index`字段是文本形式并且能转换为数字。在实际应用,可能需要针对不同的数据结构和需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值