(编辑:这是对上一个问题的跟进)
我正在对一个网站进行彻底的重新设计,该网站允许用户为多个用户签出多台机器。
这是我到目前为止所拥有的。
输出两个 cfqueries 的首页。
一个查询是活动机器(即,已经签出)。它是一个基本的cfoutput 查询,并根据查询的值显示信息。我使用 cfif 语句仅过滤活动机器(如果在 SQL 中活动,则值 = 1)
它还输出 MAC、IP OS 等内容。
另一个查询是用户可以签出的非活动机器。它还根据是否处于活动状态进行过滤,这次通过 cfif query.active eq 0 进行过滤。此查询有几个表单字段,以便用户可以选中要签入的设备的复选框,在要求字段中输入(userID和评论,基本上)并提交。
此页面底部有一个下拉菜单,可让您选择操作,表单传入一个操作编号 (form.choose_action),告诉 cfc 它应该做什么。IE 如果操作编号为 4,则告诉 cfc 将人员发送到编辑页面并将设备 ID 连同它一起传递。
所以基本上我在每种情况下都传递了 DeviceID,只有当机器处于活动状态时才传递 UserID。
当用户单击提交时,它会直接进入一个调用 cfc 的页面,该页面完成了大部分繁重的工作。
总而言之,这是一个极差的解决方案,因为它只有在一次签入或签出一台机器时才真正有效。
这是一张图片,可以更好地解释发生了什么。
这就是我想要的:
可以选择多个设备并签入/签出,希望以某种方式使用复选框。
如果为用户检查机器,则必须以某种方式将 UserID 附加到输入表单(非活动输出查询)中的相应设备,并且如果可能的话,应与 deviceID 一起在单个插入中输入。
我希望能够签入多个设备,但也阻止人们签出处于活动状态的机器(因为它们已经被签出)。非活动机器也是如此,我想阻止用户签入尚未签出的机器。截至目前我只是使用数字(即如果字段大于 0 )
一些注意事项:一次只有一个用户会使用它,所以我不必担心会话内容或有很多人尝试签入同一设备。
目前我目前将变量推送到页面,然后将表单数据传递到 CFC,这可能不是最好的方法。
从设计的角度来看,我真正遇到的最大问题是,我的逻辑非常复杂且效率低下。目前我唯一能想到的就是通过数组传递设备值。但不确定我是否可以在复选框中执行此操作。
感谢您的时间。