Html 处理一个项目列表(可能是分页的),比如基于一次单击切换一个值?

Html 处理一个项目列表(可能是分页的),比如基于一次单击切换一个值?,html,forms,webforms,Html,Forms,Webforms,当然,假设我们使用的是HTML表单和GET/POST数据,后端语言是不可知的。Asker精通PHP和Python 例如: 跟踪事件出席情况,有一个用于事件管理的HTML页面,列出所有可用人员。 每个名字旁边都有一列,其中有一个图形/小部件,表示他们参加活动的情况。 更新名单上人员的出勤状态的最佳方法是什么? 我最初想到的一种方法是简单地使用考勤复选框。但是,不发送未选中的框 以及表单数据。基本逻辑必须将出席状态切换为FALSE/OFF/Not Attenting for 未随表格一起发送的任何人

当然,假设我们使用的是HTML表单和GET/POST数据,后端语言是不可知的。Asker精通PHP和Python

例如: 跟踪事件出席情况,有一个用于事件管理的HTML页面,列出所有可用人员。 每个名字旁边都有一列,其中有一个图形/小部件,表示他们参加活动的情况。 更新名单上人员的出勤状态的最佳方法是什么?

我最初想到的一种方法是简单地使用考勤复选框。但是,不发送未选中的框 以及表单数据。基本逻辑必须将出席状态切换为FALSE/OFF/Not Attenting for 未随表格一起发送的任何人员ID。如果列表已分页,则此操作将中断

我想到的第二种方法是在每个名字旁边使用一个图形/按钮。每一个都是合适的吗 按钮是提交按钮吗?如:是否允许表单元素具有多个提交按钮?或者每个人都应该
button/Person是否被包装在它自己的表单元素中?

一个相当简单的修复方法是使用您的checkbox方法,但添加两个隐藏的表单元素来存储将要提交的最小/最大值的值。这样,您的逻辑可以将“缺失”复选框处理为“关闭”,而不会打断页面上不存在的所有人

我不建议在一个表单中包含多个提交元素。如果您想转到另一个方向,可以在每一行上设置一个链接(文本/图形/按钮),使用ajax切换该行人员的出勤情况。这样,用户就不必显式地“提交”任何内容。在界面上切换时,会在后台进行更新。

与任何其他“编辑记录”或“删除此行”按钮一样,切换按钮可以是一个提交按钮/图形元素,具有唯一的记录ID(或任何情况),以在
属性中更新/切换/删除

表单处理程序只需要检查提交按钮的
(可能需要唯一的
名称
属性)


如果我错了,请纠正我,但我相信这是可以的,至少在HTML4和XHTML1中是有效的

这是一个很好的答案,我想扩展这里的内容:它基于数字键工作,并且Person记录是连续的。否则(按名字过滤/排序),此方法必须包括页面上所有人员ID的列表。它看起来有点笨重,但可以工作。嗯,最小/最大值可以是页面用来排序的任何值。只要表单处理页面使用名称从数据中获取有效ID的列表,以min/max形式传递名称也同样有效。它不一定是连续的,最小值/最大值应该只用于设置选择有效ID列表的界限,然后可以对照复选框值列表进行检查。关于我上面的注释,它需要第三个隐藏值,表示排序方法是什么,例如,您可以传递3个值:sort=“lastName”、min=“Adams”、max=“Carson”,并让表单处理页面从数据库中选择所有人员ID,其中姓氏位于Adams和Carson之间。我选择这个答案是为了选择AJAX方法。自从做了这项研究之后,我意识到我的要求是错误的,因为在“最佳实践”中,如果不依赖AJAX这样的东西,就没有一个好的方法来做到这一点。最好使用标准复选框和带有选项的单个提交来“将所选标记为…”。对于“单点击”,AJAX将发挥作用。我相信它是有效的,应该可以工作,但它可能会有点烦人,用户每次切换一行时都会完全重新加载。